MySQL:如何添加一个列,如果它不存在?

问题描述:

我想向表中添加一列,但如果它已被添加到表中,我不希望它失败。我怎样才能做到这一点?MySQL:如何添加一个列,如果它不存在?

# Add column fails if it already exists 
ALTER TABLE `TableName` ADD `ColumnName` int(1) NOT NULL default '0'; 
+0

可能重复](http://*.com/questions/972922/add-column-to-mysql-table-if-it-does-not-exist) – derobert 2014-02-28 10:13:12

使用存储过程如下:

IF NOT EXISTS(SELECT NULL 
      FROM INFORMATION_SCHEMA.COLUMNS 
      WHERE table_name = 'tablename' 
      AND table_schema = 'db_name' 
      AND column_name = 'columnname') THEN 

    ALTER TABLE `TableName` ADD `ColumnName` int(1) NOT NULL default '0'; 

END IF; 

参考:的[添加列到MySQL表,如果它不存在

+0

为什么'!='比较。我怀疑它一定有一个很好的理由。 – 2012-12-14 23:03:21

+0

也应该是'ADD COLUMN'columnname'''吧? – 2012-12-14 23:25:44

+0

@SaadFarooq:更正了列检查,但语法正确 - [如果您查看文档,COLUMN是可选的](http://dev.mysql.com/doc/refman/5.1/en/alter-table。 html) – 2012-12-15 01:42:29