MySQL修改表-防止SQL重複執行
阿新 • • 發佈:2018-12-31
--刪除列 drop PROCEDURE if EXISTS add_col_homework; create procedure add_col_homework() BEGIN IF EXISTS (SELECT * FROM information_schema.COLUMNS WHERE TABLE_SCHEMA='mydatabase' AND table_name='mytable' AND COLUMN_NAME='mycolumn') THEN ALTER TABLE `mytable` DROP COLUMN `mycolumn`; END IF; END; call add_col_homework(); drop PROCEDURE if EXISTS add_col_homework; ---修改列名 drop PROCEDURE if EXISTS add_col_homework; create procedure add_col_homework() BEGIN IF EXISTS (SELECT * FROM information_schema.COLUMNS WHERE TABLE_SCHEMA='mydatabase' AND table_name='mytable' AND COLUMN_NAME='mycolumn') THEN ALTER TABLE `mytable` change column mycolumn mycolumnOther varchar(30) not null comment '修改註釋'; END IF; END; call add_col_homework(); drop PROCEDURE if EXISTS add_col_homework; -----修改列屬性-- drop PROCEDURE if EXISTS add_col_homework; create procedure add_col_homework() BEGIN IF EXISTS (SELECT * FROM information_schema.COLUMNS WHERE TABLE_SCHEMA='mydatabase' AND table_name='mytable' AND COLUMN_NAME='mycolumn' and COLUMN_COMMENT='原有註釋' ) THEN ALTER TABLE `mytable` MODIFY `mycolumn` int not null comment '修改註釋'; END IF; END; call add_col_homework(); drop PROCEDURE if EXISTS add_col_homework; drop PROCEDURE if EXISTS add_col_homework; create procedure add_col_homework() BEGIN IF not EXISTS (SELECT * FROM information_schema.COLUMNS WHERE TABLE_SCHEMA='mydatabase' AND table_name='mytable' AND COLUMN_NAME='mycolumn' AND COLUMN_TYPE='varchar(20)' and COLUMN_COMMENT='原有註釋') THEN ALTER TABLE `mytable` MODIFY `mycolumn` varchar(20) not null comment '修改註釋'; END IF; END; call add_col_homework(); drop PROCEDURE if EXISTS add_col_homework; --新增列 drop PROCEDURE if EXISTS add_col_homework; create procedure add_col_homework() BEGIN IF not EXISTS (SELECT * FROM information_schema.COLUMNS WHERE TABLE_SCHEMA='mydatabase' AND table_name='mytable' AND COLUMN_NAME='mycolumn') THEN ALTER TABLE `mytable` add COLUMN `mycolumn` varchar(20) not null comment '註釋'; END IF; END; call add_col_homework(); drop PROCEDURE if EXISTS add_col_homework;
最後,給出MySQL系統表連線:http://dev.mysql.com/doc/refman/5.1/zh/information-schema.html