कंस्ट्रेंट (Constraint) डेटाबेस टेबल में डेटा पर नियम/प्रतिबंध लगाते हैं ताकि डेटा की सटीकता और अखंडता (Accuracy and Integrity) बनी रहे।
MySQL कंस्ट्रेंट के दो मुख्य प्रकार
| प्रकार | विवरण | उदाहरण |
|---|---|---|
| कॉलम-लेवल कंस्ट्रेंट | केवल एक विशेष कॉलम पर लागू होता है | NOT NULL, UNIQUE (कॉलम पर) |
| टेबल-लेवल कंस्ट्रेंट | पूरे टेबल पर लागू होता है, एकाधिक कॉलम शामिल कर सकता है | PRIMARY KEY, FOREIGN KEY, CHECK |
सबसे आम MySQL कंस्ट्रेंट
1. NOT NULL
कॉलम में NULL मान प्रतिबंधित करता है।
2. UNIQUE
कॉलम के सभी मान अद्वितीय सुनिश्चित करता है (डुप्लिकेट नहीं)। NULL अनुमति है।
3. PRIMARY KEY
प्रत्येक पंक्ति को विशिष्ट रूप से पहचानता है। UNIQUE + NOT NULL का संयोजन। एक टेबल में केवल एक PRIMARY KEY।
4. FOREIGN KEY
दो टेबल के बीच लिंक बनाता है। चाइल्ड टेबल का कॉलम पैरेंट टेबल के PRIMARY KEY को संदर्भित करता है। रेफरेंशियल इंटीग्रिटी लागू करता है।
5. CHECK
कॉलम मान के लिए शर्त परिभाषित करता है (MySQL 8.0.16+ में पूरी तरह समर्थित)।
CREATE TABLE t (age INT, CHECK (age >= 18));
6. DEFAULT
कॉलम के लिए डिफ़ॉल्ट मान सेट करता है जब मान प्रदान नहीं किया जाता।
CREATE TABLE t (status VARCHAR(10) DEFAULT 'active');
कंस्ट्रेंट परिभाषा के तरीके
- इनलाइन (कॉलम परिभाषा के साथ):
id INT NOT NULL - आउट-ऑफ-लाइन (टेबल लेवल):
CONSTRAINT pk_id PRIMARY KEY (id) - नामित कंस्ट्रेंट:
CONSTRAINT uk_email UNIQUE (email)
कंस्ट्रेंट देखना
SHOW CREATE TABLE table_name; -- या SELECT * FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS WHERE TABLE_NAME = 't';
सारांश
कंस्ट्रेंट डेटा गुणवत्ता सुनिश्चित करते हैं, बिजनेस नियम लागू करते हैं, और रेफरेंशियल इंटीग्रिटी बनाए रखते हैं। सही कंस्ट्रेंट चुनना अच्छे डेटाबेस डिजाइन का आधार है।