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