Я создаю скрипт обновления MySQL, который позволит мне объединить все мои изменения sql в несколько баз данных, используя временную метку, чтобы определить, какие изменения уже были обновлены.MySQL IF Statement - скрипт с ошибкой
Я установил @cv в текущую версию базы данных. Проблема возникает в if statement
. То, что когда-либо я меняю утверждение IF, приводит к падению.
SET @cv = (SELECT `value` FROM `configs` WHERE `name` = 'cvDate');
IF @cv <= STR_TO_DATE("2010/11/10 12:15:00") THEN
ALTER TABLE `feeds` ADD `tone` VARCHAR(255) NOT NULL AFTER `type` ,
ADD `authority` DECIMAL(2, 1) NOT NULL DEFAULT '0.0' AFTER `tone`;
END IF;
UPDATE `configs` SET `value` = NOW() WHERE `name` = "cvDate";
Ошибка я получаю:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IF @cv <= STR_TO_DATE("2010/11/10 12:15:00") THEN ALTER TABLE `feeds` ADD `to' at line 1
Любая помощь будет принята с благодарностью.
Является ли @cv только одним результатом или это «результат набора», я имею в виду, даже если вы просто выбираете одну строку и один элемент, возможно, @cv становится целым результатом, а не сопоставимым значением? Havn't сделал это, так что я просто мозговой штурм – Tobias
Возможно ли, что второе предложение в таблице Alter не может быть проверено, потому что столбец «type» еще не существует? Альтернативно, что произойдет, если вы удалите предложение Alter Table, но оставите IF? –