मुझे लगता है कि आप खाली नहीं चाहते (खाली स्ट्रिंग, 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 . पर भी ऐसा ही करें यदि आप किसी रिक्त मान के अपडेट को भी प्रतिबंधित करना चाहते हैं।