我们有很多数据库,我们正在尝试在所有数据库上运行升级脚本以使它们保持最新 - 因此,它们都有不同的列和表。
如果它们不存在,我们想添加新的表和列,例如
CREATE TABLE IF NOT EXISTS `orders` ( `id` INT (11) NOT NULL ,
`value` VARCHAR (50) , `designId` INT (11) , PRIMARY KEY ( `id`));
这行得通,但我们正在为列寻找相同类型的解决方案。我们当前的解决方案抛出错误代码:1060 - 列名重复。
ALTER TABLE `orders` ADD COLUMN `customer` INT (1) NULL;
我从garry passarella尝试了以下操作,但我收到一个错误,声称 sql 语法不正确:
IF NOT EXISTS(SELECT * FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'orders' AND COLUMN_NAME = 'customer')
BEGIN ALTER TABLE orders
ADD customer BIT DEFAULT NULL
END
如果我们可以使用某些东西来让每一行忽略重复项,或者让整个脚本忽略错误代码 1060,我们将不胜感激。