かなりの数のデータベースがあり、それらすべてに対してアップグレードスクリプトを実行して、それらを最新の状態にしようとしています。そのため、それらはすべて異なる列とテーブルを持っています。
新しいテーブルと列がすでに存在しない場合は追加したいので、たとえば
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を無視するために使用できるものがある場合は、それをいただければ幸いです。