Web Development

Cara Reorder/Reset Auto Increment Primary Key

Auto-increment pada database memungkinkan nomor unik untuk dihasilkan secara otomatis dan berurutan saat record baru dimasukkan ke dalam table, dan biasanya dijadikan primary key pada sebuah table. Namun, pada beberapa kasus, kita terpaksa menghapus beberapa row pada table, misalnya saat database table kita menerima banyak spam/junk. Hal ini menyebabkan kolom pada table tidak lagi berurutan seperti pada gambar di bawah ini:

Unordered Auto Increment Primary Key
Pada kolom ID, setelah beberapa row dihapus, urutan angka menjadi tidak berurutan (1, 2, 5, 6, 8, … dst.). Seharusnya (1, 2, 3, 4, 5, … dst.).

Sebagai contoh, saya memiliki database table dengan nama download_compro, dengan auto-increment primary key id. Jika kita ingin mengurutkan kembali (reorder) atau menyusun ulang primary key tersebut agar kembali berurutan, dapat diatasi dengan menjalankan SQL query berikut ini:

SET @count = 0;
UPDATE `download_compro` SET `download_compro`.`id` = @count:= @count + 1;
ALTER TABLE `download_compro` AUTO_INCREMENT = 1;

Setelah menjalankan SQL query tersebut di atas, kolom ID pada database table menjadi kembali berurutan seperti pada gambar di bawah ini:

Ordered Auto Increment Primary Key
Pada kolom ID, urutan angka menjadi berurutan kembali (1, 2, 3, 4, 5, … dst.).

Referensi: https://stackoverflow.com/questions/740358/reorder-reset-auto-increment-primary-key