私は自分のSQLの変更をすべていくつかのデータベースにマージして、タイムスタンプを使ってどの変更がすでに更新されているかを判断できるMySQL更新スクリプトを作成しています。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はただ1つの結果値であるか、それとも "結果セット"ですか、ただ1つの行と1つの要素を選択しても、おそらく@cvは同等の値ではなく全体の結果になりますか?私はちょうど脳を襲っているので、これをしなかった – Tobias
'タイプ'の列はまだ存在しないので、変更テーブルの2番目の句を検証できない可能性はありますか?あるいは、Alter Table句を削除してIFを残すとどうなりますか? –