Menambah Lajur pada Jadual MySQL jika Ia Tidak Wujud
Dalam MySQL, anda boleh menambah lajur secara dinamik pada jadual hanya jika ia belum wujud. Terdapat beberapa pendekatan untuk mencapai ini dengan selamat.
Kaedah Prosedur Tersimpan:
DELIMITER $$ DROP PROCEDURE IF EXISTS add_column_if_not_exists $$ CREATE PROCEDURE add_column_if_not_exists() BEGIN IF NOT EXISTS ( SELECT * FROM information_schema.COLUMNS WHERE COLUMN_NAME = 'new_column' AND TABLE_NAME = 'my_table' ) THEN ALTER TABLE my_table ADD COLUMN new_column <column_definition>; END IF; END $$ CALL add_column_if_not_exists() $$ DELIMITER ;
Prosedur tersimpan ini menggunakan IF untuk menyemak sama ada lajur sudah wujud dan hanya menambah lajur jika tidak.
Pernyataan ALTER TABLE Bersyarat (MySQL 8 ):
ALTER TABLE my_table ADD COLUMN IF NOT EXISTS new_column <column_definition>;
Pernyataan ini disokong dalam MySQL 8 dan kemudian dan boleh menambah lajur jika ia tidak wujud tanpa memerlukan prosedur tersimpan.
Contoh:
Pertimbangkan jadual contoh:
CREATE TABLE IF NOT EXISTS `my_table` ( `id` INT NOT NULL AUTO_INCREMENT, `name` VARCHAR(255) NOT NULL );
Untuk menambah lajur umur jika ia tidak wujud, anda boleh menggunakan yang berikut:
DELIMITER $$ DROP PROCEDURE IF EXISTS add_age_column $$ CREATE PROCEDURE add_age_column() BEGIN IF NOT EXISTS ( SELECT * FROM information_schema.COLUMNS WHERE COLUMN_NAME = 'age' AND TABLE_NAME = 'my_table' ) THEN ALTER TABLE my_table ADD COLUMN age INT NOT NULL DEFAULT 0; END IF; END $$ CALL add_age_column() $$ DELIMITER ;
Atas ialah kandungan terperinci Bagaimana untuk Menambah Lajur MySQL Hanya jika Ia Tidak Wujud?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!