如果条件

时间:2015-12-01 09:03:29

标签: mysql syntax

使用以下sql代码:

CREATE TRIGGER yirmi_test BEFORE UPDATE ON `orders`
FOR EACH ROW
IF ((OLD.`product_price_currency` != "") AND (NEW.`product_price_currency` = "")) THEN
signal sqlstate '45000' set message_text = 'Erasing currency';
END IF;

我收到以下错误:

  

1064 - 您的SQL语法出错;查看与您的MySQL服务器版本相对应的手册,以获得在''附近使用的正确语法。在第4行

1 个答案:

答案 0 :(得分:1)

我觉得你很好。只需使用以下开始和结束delimiter块进行换行。它通过了1064测试:

DELIMITER $$
CREATE TRIGGER yirmi_test BEFORE UPDATE ON `orders`
FOR EACH ROW
IF ((OLD.`product_price_currency` != "") AND (NEW.`product_price_currency` = "")) THEN
signal sqlstate '45000' set message_text = 'Erasing currency';
END IF;
$$
DELIMITER ;

阅读This关于分隔符的底部。这很简单,但可能浪费数小时。