您的位置:首页 > 数据库

sql数据表要新增字段,最好这样写脚本

2012-09-28 17:15 253 查看
[root@localhost tsmis3003-sp1-base-20120924]# vi update.sql use test;drop procedure if exists 3003_base1_20120924_update_table_file;DELIMITER ;;CREATE PROCEDURE `3003_base1_20120924_update_table_file`()BEGINif not exists(select 1 from information_schema.COLUMNS where TABLE_SCHEMA='test' and table_name='SystemConfig' and COLUMN_NAME='TrafficLightFrequency') thenalter table SystemConfig add column TrafficLightFrequency tinyint(3) default 2;end if;if not exists(select 1 from information_schema.COLUMNS where TABLE_SCHEMA='test' and table_name='BaseConfig' and COLUMN_NAME='DistOfOverStopline') thenalter table BaseConfig add column DistOfOverStopline int(10) default 0;end if;IF EXISTS(SELECT 1 FROM information_schema.COLUMNS WHERE TABLE_SCHEMA='test' AND table_name='VersionInfo' AND COLUMN_NAME='verDB') theninsert into VersionInfo(verTSMIS,verDB) values('TSMISV3.0.0.3','3.0.0.5');End IF;END;;DELIMITER ;call 3003_base1_20120924_update_table_file();DROP PROCEDURE IF EXISTS `test`.`3003_base1_20120924_update_table_file`;

然后写一个升级脚本,只要一句

mysql -u root test<update.sql

就搞定了,这样做的好处是可以避免重复升级导致mysql报字段冲突的错误。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: