我是創建一個MySQL更新腳本,它允許我使用時間戳將所有sql更改合併到多個數據庫,以確定哪些更改已被更新。MySQL IF語句 - 腳本有錯誤
我已經將@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變成了一個完整的結果而不是可比的值?沒有這樣做,所以我只是頭腦風暴 – Tobias 2010-11-18 13:40:56
Alter Table的第二個子句可能無法驗證,因爲'type'列不存在嗎?或者,如果刪除Alter Table子句但離開IF,會發生什麼情況? – 2010-11-18 13:48:03