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

MySQL में डिफ़ॉल्ट बाधा नाम क्या है?

समस्या:

आप MySQL में किसी तालिका में बाधाओं के डिफ़ॉल्ट नाम जानना चाहते हैं।

उदाहरण:

हमारे डेटाबेस में, हम दो टेबल बनाते हैं, country और student , निम्नलिखित बाधाओं के साथ:PRIMARY KEY (तालिकाओं में कॉलम आईडी country और student ), FOREIGN KEY (स्तंभ country_id तालिका में student ), DEFAULT (तालिका में कॉलम का नाम student ), UNIQUE (स्तंभ name तालिका में country और कॉलम personal_number तालिका में student ), और CHECK (स्तंभ age तालिका में student )।

समाधान:

CREATE TABLE country (
id int NOT NULL primary key,
name varchar(100) UNIQUE
);

CREATE TABLE student (
id int NOT NULL primary key,
name varchar(100) NOT NULL DEFAULT 'unknown',
personal_number varchar(100) UNIQUE,
age int CHECK(age>15),
country_id int,
FOREIGN KEY(country_id) REFERENCES country(id)
);

आइए प्रदर्शित करें कि MySQL डिफ़ॉल्ट रूप से इन तालिकाओं की बाधाओं को कैसे नाम देता है। उन्हें देखने के लिए इस क्वेरी का उपयोग करें:

SELECT TABLE_NAME, CONSTRAINT_TYPE, CONSTRAINT_NAME
FROM information_schema.table_constraints
WHERE table_name='country' OR table_name='student';

ये रहा परिणाम:

TABLE_NAME CONSTRAINT_TYPE CONSTRAINT_NAME
देश प्राथमिक कुंजी प्राथमिक
देश अद्वितीय नाम
विद्यार्थी प्राथमिक कुंजी प्राथमिक
विद्यार्थी अद्वितीय व्यक्तिगत_संख्या
विद्यार्थी विदेशी कुंजी student_ibfk_1
विद्यार्थी जांच करें student_chk_1

चर्चा:

जब हम अपनी तालिकाएँ बनाते हैं, तो हम कुछ स्तंभों के लिए बाधाएँ निर्धारित करते हैं। हालाँकि, हम इन बाधाओं के लिए नाम निर्दिष्ट नहीं करते हैं, इसलिए उन्हें MySQL में डिफ़ॉल्ट रूप से नाम दिया गया है। MySQL में, डिफ़ॉल्ट बाधा प्रकार हैं PRIMARY KEY , FOREIGN KEY , UNIQUE , और CHECK . बाधाओं के लिए डिफ़ॉल्ट नाम कैसे उत्पन्न होते हैं?

PRIMARY KEY constraint बस नाम दिया गया है PRIMARY , क्योंकि तालिका में हमेशा एक प्राथमिक कुंजी होती है। PRIMARY . नाम की दो बाधाएं हैं उपरोक्त परिणाम में, लेकिन वे तालिकाएँ जिनसे वे संबंधित हैं, भिन्न हैं।

FOREIGN KEY के लिए , नाम सम्मेलन का अनुसरण करता है:तालिका का नाम, एक अंडरस्कोर ('_ '), 'ibfk ', एक और अंडरस्कोर ('_ '), और एक संख्या। हमारे उदाहरण के लिए, यह student_ibfk_1 है तालिका में student

CHECK . के लिए डिफॉल्ट नाम बाधा विदेशी कुंजी के समान है। यह तालिका के नाम से शुरू होता है, एक अंडरस्कोर ('_ '), 'chk ', एक और अंडरस्कोर ('_ '), और एक संख्या। हमारे उदाहरण के लिए, यह student_chk_1 है तालिका में student

UNIQUE . का डिफ़ॉल्ट नाम बाधा स्तंभ का नाम ही है। हमारे उदाहरण के लिए, यह personal_number . है तालिका में student . जब UNIQUE . के साथ कई कॉलम हों बाधा, यह बाधा की परिभाषा में पहले स्तंभ के नाम का उपयोग करता है।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL में आज के बराबर या उससे अधिक का डेटाटाइम

  2. MySQL में EXPORT_SET () फ़ंक्शन कैसे काम करता है

  3. असफल प्रविष्टियों पर MySQL ऑटोइनक्रिकमेंट क्यों बढ़ता है?

  4. SQL स्टेटमेंट में बैकटिक और स्क्वायर ब्रैकेट में क्या अंतर है?

  5. HAProxy:सभी कई तरह के संसाधन