Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

मैसकल कॉलम की बाधा खाली/आवश्यक नहीं है

मुझे लगता है कि आप खाली नहीं चाहते (खाली स्ट्रिंग, NULL . के विपरीत ) मानों को तालिका में या तो अनुमति दी जानी चाहिए।

आम तौर पर, CHECK . यही होता है के लिए बाधा। आप कुछ ऐसा करते हैं

CREATE TABLE
        mytable
        (
        myfield NOT NULL VARCHAR(200),
        CHECK(myfield > '')
        )

हालांकि, MySQL बाधा को पार करता है लेकिन इसे लागू नहीं करता है। आपको अभी भी खाली मान डालने की अनुमति है।

उस पर काम करने के लिए, BEFORE INSERT . बनाएं ट्रिगर और एक खाली मान डालने के प्रयास पर एक संकेत बढ़ाएँ:

CREATE TRIGGER
        tr_mytable_bi
BEFORE INSERT
ON      mytable
FOR EACH ROW
BEGIN
        IF NEW.myfield = '' THEN
                SIGNAL SQLSTATE '45001' SET MESSAGE_TEXT = 'Blank value on mytable.myfield';
        END IF;
END;

BEFORE UPDATE . पर भी ऐसा ही करें यदि आप किसी रिक्त मान के अपडेट को भी प्रतिबंधित करना चाहते हैं।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. नई तालिका बनाते समय मैं एक विदेशी कुंजी कैसे जोड़ सकता हूं?

  2. मुझे कर्मचारी तालिका से दूसरा सबसे बड़ा वेतन कैसे मिलेगा?

  3. मैसकल टेक्स्ट में कीवर्ड ढूंढे

  4. MySQL LIKE क्वेरी अंडरस्कोर के साथ

  5. mySQL में किसी विशिष्ट वर्ण के बाएँ और दाएँ से केवल वर्ण लेना