Sunday 27 August 2017

Alter Table Add Column If Not Exists

Terkadang kita ingin melakukan proses penambahan kolom pada sekumpulan database yang memiliki struktur tabel yang sama, tapi ada beberapa yang sudah ditambahkan dan ada yang belum, tapi jika melihatnya satu persatu akan memakan waktu. 

Jadi, bagaimana cara menambahkan kolom baru pada suatu tabel, hanya jika kolom tersebut belum ada ?

Begini caranya :

SET @s = (SELECT IF(
   (SELECT COUNT(*)
       FROM INFORMATION_SCHEMA.COLUMNS
       WHERE table_name = 'nama_tabel'
       AND table_schema = DATABASE()
       AND column_name = 'nama_kolom'
   ) > 0,
   'SELECT 1',
   'ALTER TABLE nama_tabel ADD nama_kolom INT(9) NULL DEFAULT 0 AFTER nama_kolom_yg_sudah_ada;'
));
PREPARE stmt FROM @s;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;