2010-07-13 29 views
13

Bir tabloya sütun eklemek istiyorum, ancak tabloya zaten eklenmişse başarısız olmasını istemiyorum. Bunu nasıl başarabilirim?MySQL: Zaten mevcut değilse bir sütun nasıl eklenir?

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

olası yinelenen ] (http://stackoverflow.com/questions/972922/add-column-to-mysql-table-if-it-does-not-exist) – derobert

cevap

18

bir saklı yordam aşağıdaki kullanın:

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; 

Referans: o yoksa MySQL tabloya sütun eklemek [ait

+0

Neden?! = 'Karşılaştırma. Bunun için iyi bir neden olması gerektiğinden şüpheleniyorum. –

+0

Ayrıca "ADD COLUMN" sütun adı olmalı? –

+0

@SaadFarooq: Sütun kontrolünü düzeltin, ancak sözdizimi başka bir şekilde doğrudur - [belgeleri kontrol ederseniz COLUMN isteğe bağlıdır] (http://dev.mysql.com/doc/refman/5.1/en/alter-table. html) –

İlgili konular