zoukankan      html  css  js  c++  java
  • sql数据表要新增字段,最好这样写脚本

    [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`()
    BEGIN
    if not exists(select 1 from information_schema.COLUMNS where TABLE_SCHEMA='test' and table_name='SystemConfig' and COLUMN_NAME='TrafficLigh
    tFrequency') then
    alter 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='DistOfOverSto
    pline') then
    alter 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') then
    insert 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报字段冲突的错误。 

  • 相关阅读:
    MySQL 索引优化
    [转]多列索引
    abstract class和interface有什么区别? [转]
    PM knowledge
    委托应用场景[摘]
    Web 服务描述语言工具 (Wsdl.exe)[FROM msdn]
    C# 四个基本技巧[转]
    What are database states? [forward]
    学做程序经理[摘]
    SET IDENTITY_INSERT 学习心得[转]
  • 原文地址:https://www.cnblogs.com/xianqingzh/p/2707498.html
Copyright © 2011-2022 走看看