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:
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)
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)
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).
rreeeeAtas 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!