我试图写一个触发器,如果一个语句为真,就不允许更新关系,而且我遇到了麻烦
CREATE TRIGGER noPriceLowerSpeed
BEFORE UPDATE
ON pc
FOR EACH ROW
BEGIN
IF(new.speed IS IN (SELECT speed FROM pc AS pc1) AND pc1.price < new.price)
THEN DROP new
END IF;
错误1064(42000):您的SQL语法有错误;检查 手册,对应右边的MySQL服务器版本 在'IN(SELECT速度FROM pc AS pc1)和pc1.price&lt;附近使用的语法 new.price)THEN DROP new
我试图不让PC进入我的电脑关系,如果它的价格高于具有相同速度的电脑。
如何编写此触发器以仅允许更新?
答案 0 :(得分:0)
IS
是多余的。您应该使用以下语法:
new.speed IN( ... )
此外,我认为您在;
之后错过了THEN DROP new
。
答案 1 :(得分:0)
要使语句失败,请使用触发器中的SIGNAL语句来引发错误。