इसे एक उदाहरण की मदद से समझा जा सकता है जिसमें 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 प्रक्रिया को किसी भी स्थिति में प्राथमिक कुंजी बाधा की जाँच के लिए पहले हल करना होगा।