【问题标题】:Mysql script to create a columnMysql脚本创建列
【发布时间】:2017-04-04 02:31:52
【问题描述】:

我需要一个脚本来检查数据库中是否存在列,如果不存在则创建缺失的列。 下面的代码会完全符合我的要求吗?

如果不存在(从 INFORMATION_SCHEMA.COLUMNS 中选择 * WHERE TABLE_NAME = ‘management’ AND COLUMN_NAME = ‘lastname’) 开始 ALTER TABLE TEST 添加姓氏 VARCHAR 结尾

【问题讨论】:

    标签: php mysql


    【解决方案1】:

    请注意,5.0 之前的 MySQL 不支持 INFORMATION_SCHEMA。 5.0之前也不支持存储过程,所以如果你需要支持MySQL 4.1,这个方案就不好了。

        IF NOT EXISTS( SELECT NULL
                    FROM INFORMATION_SCHEMA.COLUMNS
                   WHERE table_name = 'management'
                     AND table_schema = 'db_name'
                     AND column_name = 'lastname')  THEN
    
          ALTER TABLE `management ` ADD `lastname ` VARCHAR(255) NOT NULL;
    
    END IF;
    

    另一种解决方案是尝试

    ALTER TABLE ADD lastname VARCHAR(255) NOT NULL;
    

    。如果该列已经存在,它应该会抛出一个错误。

    错误 1060 (42S21):列名“姓氏”重复 在升级脚本中捕获错误并忽略它。

    【讨论】:

      猜你喜欢
      • 2011-02-05
      • 2018-04-25
      • 1970-01-01
      • 1970-01-01
      • 2016-06-14
      • 2010-12-12
      • 2011-10-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多