Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Menambah Lajur Secara Bersyarat pada Jadual MySQL Menggunakan `ALTER TABLE`?
MySQL: Penambahan Lajur Bersyarat Menggunakan ALTER TABLE JIKA TIDAK WUJUD
Dalam MySQL, mengubah suai struktur jadual selalunya memerlukan penambahan atau pengalihan keluar lajur. Walau bagaimanapun, operasi sedemikian boleh gagal jika lajur yang ditentukan sudah wujud atau tidak wujud. Untuk menangani senario ini, MySQL menyediakan cara bersyarat untuk menambah lajur hanya jika ia tidak wujud menggunakan sintaks ALTER TABLE JIKA TIDAK WUJUD.
Pernyataan Masalah
Pertimbangkan tugas berikut: mengubah jadual bernama tetapan untuk menambah lajur yang dipanggil multi_user sebagai TINYINT(1) dengan nilai lalai 1, tetapi hanya jika lajur belum wujud. Banyak percubaan menggunakan pendekatan berbeza, seperti sintaks TAMBAH COLUMN JIKA TIDAK WUJUD atau prosedur tersimpan dengan pernyataan IF bersyarat, telah gagal.
Penyelesaian
Untuk menambah secara bersyarat lajur menggunakan ALTER TABLE JIKA TIDAK WUJUD, ikuti ini langkah:
IF NOT EXISTS( SELECT NULL FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name = 'settings' AND table_schema = 'database_name' AND column_name = 'multi_user') THEN
ALTER TABLE `settings` ADD `multi_user` int(1) NOT NULL default '0';
Contoh
Berikut ialah contoh prosedur tersimpan yang boleh anda buat:
DELIMITER $$ CREATE PROCEDURE Alter_Table() BEGIN IF NOT EXISTS( SELECT NULL FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name = 'settings' AND table_schema = 'database_name' AND column_name = 'multi_user') THEN ALTER TABLE `settings` ADD `multi_user` int(1) NOT NULL default '0'; END IF; END $$ DELIMITER ;
Prosedur ini akan menyemak sama ada lajur multi_user wujud dalam jadual tetapan. Jika ia tidak wujud, lajur akan ditambah. Jika tidak, operasi akan dilangkau.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menambah Lajur Secara Bersyarat pada Jadual MySQL Menggunakan `ALTER TABLE`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!