2010-07-13 39 views
13

我想向表中添加一列,但如果它已被添加到表中,我不希望它失敗。我怎樣才能做到這一點?MySQL:如何添加一個列,如果它不存在?

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

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

回答

18

使用存儲過程如下:

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

相關問題