Bagaimanakah kita boleh mengatakan bahawa AUTO_INCRMENT lebih diutamakan daripada PRIMARY KEY dalam MySQL?

WBOY
Lepaskan: 2023-09-15 19:41:02
ke hadapan
562 orang telah melayarinya

我们怎么能说在 MySQL 中 AUTO_INCRMENT 优先于 PRIMARY KEY 呢?

Ini boleh difahami dengan contoh di mana nilai NULL telah dimasukkan ke dalam lajur AUTO_INCREMENT dan MySQL menyediakan nombor urutan baharu.

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)
Salin selepas log masuk

Daripada contoh di atas kita dapat melihat bahawa lajur "id" telah diisytiharkan BUKAN NULL bersama-sama dengan bit KUNCI UTAMA, tetapi ia masih menerima nilai NULL. Ini kerana lajur "id" juga telah diisytiharkan sebagai AUTO_INCRMENT. Jadi walaupun kita memasukkan nilai NULL dalam lajur ini, MySQL akan mengembalikan nombor urutan.

Sebaliknya, jika kita cuba memasukkan NULL dalam lajur yang diisytiharkan sebagai PRIMARY KEY tetapi tidak diisytiharkan sebagai AUTO_INCRMENT, maka MySQL akan mengembalikan ralat seperti berikut -

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
Salin selepas log masuk

Oleh itu, kita boleh mengatakan bahawa AUTO_INCRMENT lebih diutamakan daripada PRIMARY KEY kekangan kerana dalam apa jua keadaan Prosedur di bawah AUTO_INCRMENT perlu diselesaikan lebih awal untuk menyemak kekangan PRIMARY KEY.

Atas ialah kandungan terperinci Bagaimanakah kita boleh mengatakan bahawa AUTO_INCRMENT lebih diutamakan daripada PRIMARY KEY dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:tutorialspoint.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!