Я пытаюсь записать запрос, который проверит, имеет ли определенная таблица в 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;
работал бы, но это перестало работать плохо. Существует ли путь?
Выберите только имя_столбца из информационной схемы и поместите результат этого запрос в переменную. Затем проверьте переменную, чтобы решить, нуждается ли таблица в изменении или нет.
П.С. Не забудьте также указать TABLE_SCHEMA для таблицы COLUMNS.