我想向表中添加一列,但如果它已被添加到表中,我不希望它失敗。我怎樣才能做到這一點?MySQL:如何添加一個列,如果它不存在?
# Add column fails if it already exists
ALTER TABLE `TableName` ADD `ColumnName` int(1) NOT NULL default '0';
我想向表中添加一列,但如果它已被添加到表中,我不希望它失敗。我怎樣才能做到這一點?MySQL:如何添加一個列,如果它不存在?
# Add column fails if it already exists
ALTER TABLE `TableName` ADD `ColumnName` int(1) NOT NULL default '0';
使用存儲過程如下:
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表,如果它不存在
爲什麼'!='比較。我懷疑它一定有一個很好的理由。 – 2012-12-14 23:03:21
也應該是'ADD COLUMN'columnname'''吧? – 2012-12-14 23:25:44
@SaadFarooq:更正了列檢查,但語法正確 - [如果您查看文檔,COLUMN是可選的](http://dev.mysql.com/doc/refman/5.1/en/alter-table。 html) – 2012-12-15 01:42:29
可能重複](http://stackoverflow.com/questions/972922/add-column-to-mysql-table-if-it-does-not-exist) – derobert 2014-02-28 10:13:12