MySQL चेक बाधाओं को लागू नहीं करता है।
यह SQL मानक से एक अच्छी तरह से प्रलेखित विचलन है। (हालांकि यह अनपेक्षित द्वारा अप्रत्याशित है।)
यदि आपको "चेक बाधा" लागू करने के लिए MySQL डेटाबेस की आवश्यकता है, तो प्रवर्तन को BEFORE INSERT
में कोडित किया जाना चाहिए। और एक BEFORE UPDATE
ट्रिगर।
यह नोट:
MySQL संदर्भ नियमावली में CREATE TABLE
. के अंतर्गत दफ़न किया गया है वाक्य रचना।
संदर्भ:https://dev.mysql.com/doc /refman/5.5/hi/create-table.html
ENUM के बारे में चेतावनी
एक ENUM
"अमान्य" मानों को सम्मिलित करने से प्रतिबंधित नहीं करता है; एक अमान्य मान को शून्य लंबाई वाली स्ट्रिंग में अनुवादित किया जाता है, एक चेतावनी जारी की जाती है, लेकिन यह कोई त्रुटि नहीं है।
प्रदर्शन:
CREATE TABLE foo (gen ENUM('M','F'))
INSERT INTO foo (gen) VALUES ('x')
-- Warning Code : 1265
-- Data truncated for column 'gen' at row 1
SELECT gen, CHAR_LENGTH(gen) FROM foo;
-- gen CHAR_LENGTH(gen)
-- --- ----------------
-- 0