Pada hari ini saya mendapat task untuk membuat suatu modul baru suatu aplikasi web. Setelah selesai dan telah dilakukan pengujian oleh QA, ternyata dibutuhkan 1 kolom pada database yang terpengaruh. Yaitu table index yang memiliki type primery key serta autoincreament. Autoincreament adalah proses pengurutan suatu baris secara otomatis setiap terdapat data baru tersimpan.
Hal utama yang dibutuhkan, value pada kolom tersebut tidak boleh kosong. Untuk data yang kurang dari 10, mungkin hal yang mudah diisi secara manual. Lalu bagaimana apabila terdapat data sebanyak ratusan bahkan ribuan row? Pasti sangat tidak efektif jika dilakukan secara manual. Nah, pada artikel ini kita akan menambahkan value tersebut secara otomatis.
Untuk menambahkan value tersebut, kita pastinya menggunakan query update dan menggabungkan dengan fungsi membuat urutan row. Kamu bisa membacanya pada artikel Query Membuat Nomor Urut pada MySQL. Ok, kita langsung saja bahas bagaimana caranya.
Pertama, kita buat dulu kolomnya. Dalam hal ini kolom biasa. Begini query-nya :
ALTER TABLE nama_tabel ADD nama_kolom_baru int(9) NULL;
Pada query di atas, kita menggunakan type data integer dengan maksimal panjang 9 digit. Setelah terbentuk, berikutnya kita query untuk melakukan update pada semua row :
SET @nomor:=0; UPDATE nama_tabel SET nama_kolom_baru = @nomor:=@nomor+1;
Setelah selesai, lakukan ekseksui satu persatu. Berikut penjelasan singkatnya :
1. SET @nomor:=0; berfungsi untuk membuat parameter baru dengan nama nomor dan value nol.
2. Melakukan prosess update pada kolom dengan nilai @nomor:=@nomor+1 yang akan melakukan penjumlahan +1 pada setiap baris.
Apabila berhasil, maka pada kolom yang baru kita buat tadi akan terisi nilai secara berurutan. Kemudian jangan lupa melakukan perubahan kolom tersebut menjadi primary key. Berikut query nya :
ALTER TABLE nama_tabel ADD CONSTRAINT nama_tabel_pk PRIMARY KEY (nama_kolom_baru);
Kemudian, kita ubaah kolom tersebut menjadi autoincreament. Begini query nya :
ALTER TABLE nama_tabel MODIFY COLUMN nama_kolom_baru int(9) CHARACTER SET latin1 COLLATE latin1_swedish_ci auto_increment NOT NULL;
Setelah selesai eksekusi. Coba untuk menambahakn data secara manual namun kosongkan pengisian pada nama_kolom_baru. Maka hasilnya, nilai yang baru diinputkan akan melakukan penjumlahan secara otomatis.
Nah, mudah sekali bukan bagaimana cara Menambahkan Kolom Autoincreament pada Tabel Eksisting. Semoga artikel ini bermanfaat.
Leave a Reply