Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> MySql

हम कैसे कह सकते हैं कि MySQL में, AUTO_INCREMENT को PRIMARY KEY पर वरीयता मिल रही है?

<घंटा/>

इसे एक उदाहरण की मदद से समझा जा सकता है जिसमें AUTO_INCREMENT कॉलम में NULL मान डाला गया है और MySQL एक नया अनुक्रम संख्या प्रदान करता है।

mysql> Create table employeeinfo(id INT NOT NULL PRIMARY KEY AUTO_INCREMENT, Name Varchar(10));
Query OK, 0 rows affected (0.16 sec)

mysql> Insert into employeeinfo(id, Name) values(NULL, 'Saurabh');
Query OK, 1 row affected (0.07 sec)

mysql> Select * from employeeinfo;
+----+---------+
| id | Name    |
+----+---------+
| 1  | Saurabh |
+----+---------+
1 row in set (0.00 sec)

जैसा कि हम उपरोक्त उदाहरण से देख सकते हैं कि कॉलम 'आईडी' को न्यूल घोषित किया गया है और साथ ही प्राथमिक कुंजी बिट अभी भी यह एक पूर्ण मान स्वीकार करता है। ऐसा इसलिए है क्योंकि कॉलम 'आईडी' को AUTO_INCREMENT के रूप में भी घोषित किया गया है। इसके कारण, MySQL उस कॉलम में NULL मान डालने पर भी अनुक्रम संख्या देता है।

कंट्रास्ट में, यदि हम एक कॉलम में NULL डालने का प्रयास करेंगे, जिसे प्राथमिक कुंजी घोषित किया गया है, लेकिन AUTO_INCREMENT नहीं, तो MySQL निम्नानुसार एक त्रुटि देता है -

mysql> create table people(id INT primary key, name varchar(10));
Query OK, 0 rows affected (0.18 sec)

mysql> Insert into people(id, name) values(NULL, 'Rahul');
ERROR 1048 (23000): Column 'id' cannot be null

इसलिए, हम कह सकते हैं कि AUTO_INCREMENT प्राथमिक KEY बाधा से पहले है क्योंकि AUTO_INCREMENT प्रक्रिया को किसी भी स्थिति में प्राथमिक कुंजी बाधा की जाँच के लिए पहले हल करना होगा।


  1. MySQL डीबी में विदेशी कुंजी की पहचान कैसे करें?

    आइए पहले एक टेबल बनाएं - टेबल बनाएं DemoTable1 (Id int NOT NULL PRIMARY KEY,EmployeeName varchar(100));क्वेरी ओके, 0 पंक्तियाँ प्रभावित (0.50 सेकंड) विदेशी कुंजी बाधाओं के साथ दूसरी तालिका बनाने की क्वेरी निम्नलिखित है - तालिका बनाएं DemoTable2 (Id int NOT NULL, StreetName varchar(100), CityName

  1. MySQL में auto_increment के साथ 1000 से शुरू होने वाला INT फ़ील्ड (प्राथमिक कुंजी नहीं) कैसे बनाएं?

    इसके लिए, आपको AUTO_INCREMENT को 1000 के रूप में सेट करना होगा - टेबल बदलें yourTableName AUTO_INCREMENT =1000; आइए पहले एक टेबल बनाएं - टेबल बनाएं DemoTable639 (StudentId int PRIMARY KEY, StudentStartId int AUTO_INCREMENT, StudentName VARCHAR(50), INDEX(StudentStartId));क्वेरी ठीक, 0 पंक्तियाँ प्

  1. मैं MySQL में प्राथमिक कुंजी कैसे छोड़ूं?

    प्राथमिक कुंजी छोड़ने के लिए, तालिका को बदलने के लिए पहले ALTER का उपयोग करें। इसके साथ, नीचे की तरह कुंजी को छोड़ने के लिए DROP का उपयोग करें सिंटैक्स टेबल बदलें yourTableName ड्रॉप प्राइमरी की; आइए पहले एक टेबल बनाएं - );क्वेरी ओके, 0 पंक्तियाँ प्रभावित (0.48) सेकंड) यहाँ तालिका के विवरण की जाँ