Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

เราจะพูดได้อย่างไรว่าใน MySQL AUTO_INCREMENT มีความสำคัญเหนือ PRIMARY KEY


สิ่งนี้สามารถเข้าใจได้ด้วยความช่วยเหลือของตัวอย่างที่มีการแทรกค่า NULL ในคอลัมน์ AUTO_INCREMENT และ 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)

ดังที่เราสามารถสังเกตได้จากตัวอย่างด้านบนว่าคอลัมน์ 'id' ได้รับการประกาศเป็น NOT NULL และคีย์ PRIMARY KEY ยังคงยอมรับค่า NULL เป็นเพราะคอลัมน์ 'id' ได้รับการประกาศเป็น 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 มาก่อนข้อจำกัด PRIMARY KEY เนื่องจากกระบวนการ AUTO_INCREMENT จะต้องได้รับการแก้ไขก่อนหน้านี้เพื่อตรวจสอบข้อจำกัดของ PRIMARY KEY ในทุกกรณี