Ketika membuat sebuah tabel di database MySQL, biasanya akan ada sebuah record/field yang di jadikan sebagai PRIMARY KEY dengan fitur AUTO_INCREMENT (memberi nilai otomatis secara urut ketika data diinput).
Permasalahan
Apabila sebuah field misal id dijadikan PRIMARY KEY AUTO_INCREMENT sebagai penomoran maka ketika sebuah data dihapus kemudian data diinputkan lagi, urutan nomor tersebut akan tidak berurutan. Hal ini akan menyebabkan data yang dihasilkan tidak berurutan serta berakibat pada data tidak akurat dan baik.
Sebagai contoh, misal kita memiliki data user seperti gambar dibawah :
Kemudian, kita hapus beberapa data (yang bertanda centang). Sehingga data users menjadi seperti berikut :
Jika diperhatikan, field id
sudah tidak berurutan lagi karena sebagian data sudah dihapus. Jika nantinya kita menambahkan data baru, maka id
yang diberikan ialah nomor 11. Kenapa bukan 10 ?
Ya, karena sebelum data dihapus, id
terakhir ialah 10. Maka ketika ada penambahan data baru, MySQL akan tetap melanjutkan urutan id
menjadi 11. Lalu bagaimana ketika data baru ditambahkan, id
user tetap bisa berurutan ?
Untuk mengatasi hal tersebut, maka perlu dilakukan reset nilai auto increment di database MySQL. Agar nantinya data yang dihasilkan berurutan sehingga akurat dan baik. Ada beberapa cara yang dapat digunakan untuk mereset nilai auto increment yaitu :
Catatan : Jangan mempraktek-kan tutorial ini di database production web atau aplikasi Anda. Silakan praktek di database development serta lakukan backup database terlebih dahulu.
Cara 1 – Alter Table
Menggunakan perintah ALTER TABLE yaitu mengubah struktur auto increment. Dengan cara ini Anda cukup menentukan nilai auto increment yang akan direset. Berikut perintahnya :
ALTER TABLE nama_tabel AUTO_INCREMENT = 1;
Keterangan :
Perintah diatas akan mereset nilai auto increment ke nilai 1.
ALTER TABLE nama_tabel AUTO_INCREMENT = 7;
Keterangan :
Perintah diatas akan mereset nilai auto increment ke nilai 7.
Cara 2 – Truncate Table
Dengan perintah TRUNCATE, semua data akan dihapus dan field dengan auto increment akan direset kembali. Berikut perintahnya :
TRUNCATE TABLE nama_tabel;
Perhatian !
Menggunakan perintah TRUNCATE, berarti semua data didalam tabel akan terhapus. Hati-hati menggunakan perintah ini jika tabel Anda memiliki data yang banyak dan penting.
Cara 3 – Menghapus Field Auto Increment & Membuatnya Kembali
Dengan cara ini Anda harus menghapus field PRIMARY KEY
AUTO_INCREMENT
, kemudian membuat kembali field tersebut. Pertama, hapus dahulu field dengan PRIMARY KEY AUTO_INCREMENT
dengan perintah berikut :
Menghapus Field Auto Increment
ALTER TABLE nama_tabel DROP nama_field;
Kemudian buat kembali field tersebut dengan PRIMARY KEY AUTO_INCREMENT, maka secara otomatis data tersebut akan direset.
Membuat Kembali Field dengan Auto Increment
ALTER TABLE nama_tabel ADD nama_field INT NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST;
Baca Juga :
– Membuat Nomor Urut dengan MySQL
– Menggunakan UUID di PHP
Cara 4 – Reset Auto Increment di PHPMyAdmin
Jika Anda menggunakan PHPMyAdmin untuk mengelola database MySQL. Anda juga dapat me-reset auto increment secara langsung melalui PHPMyAdmin.
Untuk me-reset auto increment di PHPMyAdmin langkahnya ialah :
Pertama
Pilihlah tabel yang ingin di reset id
auto incrementnya. Selanjutnya klik menu Operations pada tab tabel tersebut.
Kedua
Pada bagian Table options, isikan kolom AUTO_INCREMENT dengan nilai urutan baru. Pastikan nilai yang Anda isi ialah nomor id
yang belum digunakan dan di urutan akhir. Kemudian klik tombol Go untuk menyimpan.
Langkah diatas sebenarnya sama saja dengan menjalankan perintah ALTER
pada cara 1 yang telah dijelaskan sebelumnya, hanya saja disini kita menggunakan bantuan tool PHPMyAdmin.
Kesimpulan
Jika didalam tabel terdapat banyak data, cara ke-3 cukup efektif untuk Anda gunakan. Dikarenakan data Anda tidak akan terhapus. Namun apabila Anda ingin mereset nilai auto_increment ke posisi tertentu gunakanlah cara ke-1.
Selamat mencoba dan semoga bermanfaat.