MySQL: как добавить столбец, если он еще не существует? - PullRequest
13 голосов
/ 14 июля 2010

Я хочу добавить столбец в таблицу, но не хочу, чтобы он потерпел неудачу, если он уже был добавлен в таблицу.Как мне этого добиться?

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

1 Ответ

18 голосов
/ 14 июля 2010

Используйте следующее в хранимой процедуре:

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;

Ссылка:

...