MySQL, Проверка, если столбец существует в таблице с SQL

Я пытаюсь записать запрос, который проверит, имеет ли определенная таблица в MySQL определенный столбец, и если не — создают его. Иначе ничего не сделайте. Это - действительно легкая процедура в любой базе данных промышленного класса, все же MySQL, кажется, исключение.

Я думал что-то как

IF EXISTS (SELECT * FROM INFORMATION_SCHEMA.COLUMNS 
           WHERE TABLE_NAME='prefix_topic' AND column_name='topic_last_update') 
BEGIN 
ALTER TABLE `prefix_topic` ADD `topic_last_update` DATETIME NOT NULL;
UPDATE `prefix_topic` SET `topic_last_update` = `topic_date_add`;
END;

работал бы, но это перестало работать плохо. Существует ли путь?

119
задан Gareth Davis 3 November 2013 в 20:11
поделиться

1 ответ

Выберите только имя_столбца из информационной схемы и поместите результат этого запрос в переменную. Затем проверьте переменную, чтобы решить, нуждается ли таблица в изменении или нет.

П.С. Не забудьте также указать TABLE_SCHEMA для таблицы COLUMNS.

7
ответ дан 24 November 2019 в 01:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: