Apakah yang MySQL kembalikan apabila kita menukar nilai AUTO_INCRMENT yang kurang daripada nombor urutan semasa?

PHPz
Lepaskan: 2023-09-03 20:57:03
ke hadapan
714 orang telah melayarinya

当我们更改小于当前序列号的 AUTO_INCRMENT 值时,MySQL 返回什么?

Apabila kami menggunakan AUTO_INCREMENT pada lajur MySQL, nombor jujukan sentiasa meningkat dalam tertib menaik, bermula daripada nilai lalai 1 atau nilai yang kami tentukan.

Inilah sebabnya MySQL tidak membenarkan menukar nilai AUTO_INCREMENT kepada nilai yang lebih kecil daripada nombor jujukan semasa. Ia boleh difahami melalui contoh berikut:

Contoh

Dalam contoh ini, katakan kita mempunyai jadual bernama 'emp1' dan semasa mencipta jadual kita menentukan nilai AUTO_INCREMENT sebagai 100. Jadi selepas memasukkan nilai dalam jadual, jujukan akan bermula dari 100 seperti yang ditunjukkan dalam output pertanyaan di bawah:

mysql> Select * from emp1;
+-----+---------+
| id | NAME     |
+-----+---------+
| 100 | Sohan   |
| 101 | Harshit |
+-----+---------+
2 rows in set (0.00 sec)
Salin selepas log masuk

Sekarang apabila kita cuba menukar nilai AUTO_INCRMENT kepada 90 dengan bantuan pertanyaan ALTER TABLE, MySQL tidak mengembalikan ralat dan Amaran, kerana pertanyaan berfungsi dengan baik, tetapi apabila kami memasukkan nilai baharu dalam jadual, MySQL membandingkan nilai AUTO_INCRMENT yang ditentukan dengan nombor urutan semasa. Oleh kerana nilai AUTO_INCRMENT (90) yang ditentukan adalah kurang daripada nombor jujukan semasa (101), MySQL mula mengumpul nilai baharu daripada 102, yang boleh diperhatikan daripada pertanyaan berikut -

mysql> ALTER TABLE EMP1 AUTO_INCREMENT = 90;
Query OK, 2 rows affected (0.31 sec)
Records: 2 Duplicates: 0 Warnings: 0

mysql> Insert into emp1(name) values('Aryan');
Query OK, 1 row affected (0.08 sec)

mysql> Select * from emp1;
+-----+---------+
| id  | NAME    |
+-----+---------+
| 100 | Sohan   |
| 101 | Harshit |
| 102 | Aryan   |
+-----+---------+
3 rows in set (0.00 sec)
Salin selepas log masuk

Sebaliknya, jika kita cuba menukar AUTO_INCRMENT lebih tinggi daripada nombor urutan semasa, maka MySQL akan mengumpul nilai baru bermula dari nilai yang ditentukan.

Untuk memaparkan 'emp1' dengan lebih jelas dalam jadual, kami menukar nilai AUTO_INCRMENT kepada 108, yang lebih tinggi daripada nombor urutan semasa, jadi MySQL mula mengumpul nilai yang baru dimasukkan dari nilai AUTO_INCRMENT yang ditentukan (iaitu bermula dari 108).

rreeee

Atas ialah kandungan terperinci Apakah yang MySQL kembalikan apabila kita menukar nilai AUTO_INCRMENT yang kurang daripada nombor urutan semasa?. 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