Mengatur Ulang Urutan Nomor pada Kolom AUTO_INCREMENT Tabel MySQL

Pengelolaan sebuah data akan mudah dilakukan jika memiliki struktur yang baik. Salah satu media penyimpanan data yang saat ini banyak digunakan adalah MySQL. Mengelola data pada tabel MySQL berbeda dengan cara mengelola data pada excel. Ada perintah tertentu yang perlu dipahami dalam mengelola data MySQL. Perintah dasar yang umum digunakan adalah menambahkan data (INSERT), menampilkan (SELECT), mengubah (UPDATE), dan menghapus (DELETE). Selain perintah tersebut banyak juga perintah lainnya seperti CREATE, ALTER, RENAME, DROP, dan sebagainya. Selain menggunakan perintah secara langsung, terdapat juga beberapa perangkat lunak seperti phpMyAdmin yang dapat memudahkan pengelolaan tabel MySQL.

Pada sebuah tabel MySQL terdapat satu kolom istimewa yang digunakan sebagai acuan untuk melakukan tindakan terhadap sebuah baris. Kolom ini biasanya diisi dengan sebuah karakter atau nomor unik. Nama kolom ini biasanya ditandai dengan id, misalnya id_pengguna, id_anggota, dan sebagainya. Jika kolom ini diset untuk tipe numerik misalnya INT, biasanya diberi extra AUTO_INCREMENT. Tujuannya agar dalam pengisian kolom ini tidak perlu secara manual, tetapi otomatis melanjutkan urutan sebelumnya.

Dalam pengelolaan data, adakalanya beberapa baris pada tabel sengaja dihapus untuk tujuan tertentu. Hal ini mengakibatkan urutan nomor pada kolom AUTO_INCREMENT terputus atau meloncat. Bukan masalah besar, tetapi pada beberapa kasus bisa menjadi masalah. Untuk mengatur ulang urutan agar kembali menjadi utuh dan terurut cukup mudah dilakukan jika hal ini terjadi pada tabel yang memuat beberapa baris saja. Tapi penanganan akan sulit dilakukan untuk data dengan ratusan hingga ribuan baris tabel.

Perhatikan contoh tabel data_anggota berikut.

id_anggota nama_anggota
1 Abdul
2 Budi
3 Cecep
4 Dani
5 Ersa
6 Fani
7 Gani

Karena alasan tertentu, baris ke-3, ke-4, dan ke-6 dihapus sehingga tabel menjadi seperti berikut.

id_anggota nama_anggota
1 Abdul
2 Budi
5 Ersa
7 Gani

Urutan pada kolom id_anggota menjadi terputus. Untuk membuat urutan kembali utuh tanpa ada yang terlewat, gunakan perintah berikut.

ALTER TABLE data_anggota ORDER BY id_anggota;
SET @count:=0;
UPDATE data_anggota SET id_anggota=@count:=@count+1;
ALTER TABLE data_anggota AUTO_INCREMENT=1;

Jika dijalankan menggunakan file php, gunakan kode berikut.

<?php
mysql_query("ALTER TABLE data_anggota ORDER BY id_anggota");
mysql_query("SET @count:=0");
mysql_query("UPDATE data_anggota SET id_anggota=@count:=@count+1");
mysql_query("ALTER TABLE data_anggota AUTO_INCREMENT=1");
?>

Urutan nomor pada kolom id_anggota akan kembali terurut sebagai berikut.

id_anggota nama_anggota
1 Abdul
2 Budi
3 Ersa
4 Gani

Perintah di atas hanya berlaku jika tabel memiliki kolom AUTO_INCREMENT dan kolom tersebut memiliki tipe bilangan.

Oleh Opan
Dibuat 06/10/2016
Seorang guru matematika yang hobi menulis tiga bahasa, yaitu bahasa indonesia, matematika, dan php. Dari ketiganya terwujudlah website ini sebagai sarana berbagi pengetahuan yang dimiliki.

Demi menghargai hak kekayaan intelektual, mohon untuk tidak menyalin sebagian atau seluruh halaman web ini dengan cara apa pun untuk ditampilkan di halaman web lain atau diklaim sebagai karya milik Anda. Tindakan tersebut hanya akan merugikan diri Anda sendiri. Jika membutuhkan halaman ini dengan tujuan untuk digunakan sendiri, silakan unduh atau cetak secara langsung.