Pertanyaan Bagaimana cara mereset AUTO_INCREMENT di MySQL?


Bagaimana bisa saya ulang itu AUTO_INCREMENT suatu bidang? Saya ingin mulai menghitung dari 1 lagi.


980
2018-01-19 08:37


asal


Jawaban:


Anda dapat mengatur ulang penghitung dengan:

ALTER TABLE tablename AUTO_INCREMENT = 1

Untuk InnoDB Anda tidak dapat mengatur auto_increment nilai lebih rendah atau sama dengan indeks arus tertinggi. (kutipan dari ViralPatel):

Perhatikan bahwa Anda tidak dapat mengatur ulang penghitung ke nilai yang kurang dari atau sama   untuk semua yang telah digunakan. Untuk MyISAM, jika nilainya kurang   dari atau sama dengan nilai maksimum saat ini di AUTO_INCREMENT   kolom, nilai disetel ulang ke nilai tambah maksimum saat ini. Untuk   InnoDB, jika nilainya kurang dari nilai maksimum saat ini di   kolom, tidak ada kesalahan yang terjadi dan nilai urutan saat ini tidak berubah.

Lihat Bagaimana cara me-reset MySQL AutoIncrement menggunakan nilai MAX dari tabel lain? tentang cara mendapatkan nilai yang diterima secara dinamis.


1654
2018-01-19 08:39



ALTER TABLE tablename AUTO_INCREMENT = 1

120
2018-01-19 08:39



Cukup seperti ini:

ALTER TABLE tablename AUTO_INCREMENT = value;

referensi: http://dev.mysql.com/doc/refman/5.1/en/alter-table.html


52
2018-01-19 08:40



SET  @num := 0;

UPDATE your_table SET id = @num := (@num+1);

ALTER TABLE your_table AUTO_INCREMENT =1;

Saya pikir ini akan berhasil


49
2018-05-04 16:21



enter image description hereAda cara yang sangat mudah dengan phpmyadmin di bawah tab "operasi", Anda dapat mengatur, pada opsi tabel, penyambungan otomatis ke nomor yang Anda inginkan.


37
2018-05-03 20:20



Solusi terbaik yang berhasil untuk saya:

ALTER TABLE my_table MODIFY COLUMN ID INT(10) UNSIGNED;
COMMIT;
ALTER TABLE my_table MODIFY COLUMN ID INT(10) UNSIGNED AUTO_INCREMENT;
COMMIT;

Cepat, bekerja dengan innoDB, dan saya tidak perlu mengetahui nilai maksimum saat ini! Dengan cara ini penghitung kenaikan otomatis akan diatur ulang dan akan dimulai secara otomatis dari nilai maksimum yang ada.


29
2017-09-16 22:39



Ada pilihan bagus yang diberikan Cara Mengatur Ulang Kolom Autoenerasi MySQL

Perhatikan itu ALTER TABLE tablename AUTO_INCREMENT = value; tidak tidak bekerja untuk InnoDB


20
2017-09-19 09:14



Jawaban tertinggi untuk pertanyaan ini semuanya merekomendasikan "ALTER yourtable AUTO_INCREMENT = value". Namun, ini hanya berfungsi saat value di alter lebih besar dari nilai max saat ini dari kolom autoincrement. Menurut dokumentasi MySQL:

Anda tidak dapat mengatur ulang penghitung ke nilai yang kurang dari atau sama dengan yang ada   sudah digunakan. Untuk MyISAM, jika nilainya kurang dari atau sama   ke nilai maksimum saat ini di kolom AUTO_INCREMENT, nilainya   direset ke maksimum saat ini ditambah satu. Untuk InnoDB, Anda bisa menggunakannya   ALTER TABLE ... AUTO_INCREMENT = nilai seperti MySQL 5.0.3, tetapi jika   nilai kurang dari nilai maksimum saat ini di kolom, tidak ada kesalahan   terjadi dan nilai urutan saat ini tidak berubah.

Intinya, Anda hanya dapat mengubah AUTO_INCREMENT untuk meningkatkan nilai kolom autoincrement, bukan meresetnya menjadi 1, seperti yang diminta OP di bagian kedua dari pertanyaan. Untuk opsi yang benar-benar memungkinkan Anda mengatur AUTO_INCREMENT ke bawah dari max saat ini, lihatlah Susun ulang / setel ulang kunci primer peningkatan otomatis.


16
2017-12-09 20:39



Menambahkan pembaruan karena fungsinya berubah di MySQL 5.6. Pada MySQL 5.6 Anda BISA menggunakan ALTER TABLE sederhana dengan InnoDB:

ALTER TABLE tablename AUTO_INCREMENT = 1;

Dokumen diperbarui untuk mencerminkan ini:

http://dev.mysql.com/doc/refman/5.6/en/alter-table.html

Pengujian saya juga menunjukkan bahwa tabel TIDAK disalin, nilainya diubah begitu saja.


15
2017-09-25 19:28



ALTER TABLE news_feed DROP id

ALTER TABLE news_feed ADD  id BIGINT( 200 ) NOT NULL AUTO_INCREMENT FIRST ,ADD PRIMARY KEY (id)

Saya menggunakan ini di beberapa skrip saya, bidang ID dihapus dan kemudian ditambahkan kembali dengan pengaturan sebelumnya, semua bidang yang ada dalam tabel database diisi dengan nilai-nilai kenaikan otomatis baru, ini juga harus bekerja dengan InnoDB.

Perhatikan bahwa semua kolom di dalam tabel akan diceritakan dan akan memiliki ID lain !!!.


11
2018-05-15 05:57



Anda juga bisa menggunakan sintaks TRUNCATE meja seperti ini: TRUNCATE TABLE table_name

AWAS!!  TRUNCATE TABLE your_table akan hapus semuanya di dalam kamu your_table!!


9
2018-04-05 06:51