Sabtu, 05 Agustus 2017

Cara Menambahkan Banyak Kolom/Field Secara Berurutan Pada MariaDB / MySQL


Setahu saya pada pada MariaDB / MySQL tidak ada fitur me-Loop tambahan daftar colom supaya tidak mengulang-ulang menulis perintah. Secara default perintah menambahkan kolom secara berurutan seperti:
MariaDB [coba]> ALTER TABLE <nama-tabel> ADD <nama-kolom-tambahan-1> VARCHAR(20) AFTER <kolom-sebelumnya-0>;
MariaDB [coba]> ALTER TABLE <nama-tabel> ADD <nama-kolom-tambahan-2> VARCHAR(20) AFTER <kolom-sebelumnya-1/kolom-tambahan-1>;
MariaDB [coba]> ALTER TABLE <nama-tabel> ADD <nama-kolom-tambahan-3> VARCHAR(20) AFTER <kolom-sebelumnya-2/kolom-tambahan-2 >;
dst…
Dengan perintah tersebut secara berulang mungkin tidak masalah jika kolom yang ditambahkan hanya sedikit sekitar 1-5 kolom, namun bagaimana jika tambahan kolom >10, mungkin bikin jemari kesemutan. Jika pakai IDE datababase mungkin sedikit lebih mudah namun beberapa kondisi tidak secepat mode command line.
Pada tutorial ini saya kasih contoh cara menambahkan field list pada MariaDB / MySQL menggunakan Loop Shell Script (Bash).
Misalkan kamu punya database dengan nama “tesdb” tabel “testabel” mempunyai kolom/Field terdiri A, L. Contoh:

Kemudian kamu ingin menambahkan kolom dengan nama B, C, D, E, F, G, H, I, J, K dengan type data yang sama, maka salah satu solusi adalah menggunakan Loop pada shell script. Caranya:
Buka teks editor kesukaan kamu dan tulis command script seperti berikut:

a[0]=A
a[1]=B
a[2]=C
a[3]=D
a[4]=E
a[5]=F
a[6]=G
a[7]=H
a[8]=I
a[9]=J
a[10]=K

for i in {1..10}; do

mysql -u root -p<pasword> <nama-database> -e "ALTER TABLE <nama-tabel> ADD ${a[i]} VARCHAR(20) AFTER ${a[i-1]}"

done

Hasil:

Penjelasan:
Kenapa loop dimulai dari angka 1 (untuk variabel array)? karena angka 0 untuk adalah untuk kolom yang sudah ada dan menjadikan patokan loasi penempatan kolom yang akan ditambah.

IGN User

Tidak ada komentar:

Posting Komentar