Reset Auto Increment MySQL

Reset Nilai Auto Increment MySQL

MySQL, Tutorial - 02 Nov 2013

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 :

Data User

Kemudian, kita hapus beberapa data (yang bertanda centang). Sehingga data users menjadi seperti berikut :

Data User setelah dihapus beberapa data

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.

Reset Auto Increment di PHPMyAdmin

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.