【发布时间】:2017-10-26 14:45:27
【问题描述】:
在插入新行之前创建新触发器时遇到了一些问题。 它应该在插入之前停止插入具有已从同一表中的另一行引用的值的新行。 我尝试使用此触发器,但它与 mariaDB 不兼容,实际上它在引用时给了我语法错误。
CREATE TRIGGER BadgeAlreadyUsed
BEFORE INSERT ON User
REFERENCING NEW AS N
FOR EACH ROW
WHEN (EXISTS ( SELECT IDBadge FROM User WHERE N.IDBadge = User.IDBadge ))
SIGNAL SQLSTATE '70002' ('Badge already used!!');
我怎样才能用新语法做同样的事情? 谢谢。
【问题讨论】:
-
能否请您包含语法错误。我怀疑是
FOR EACH ROW之后的SQL 导致了问题。 -
我一直在 db2 中使用这种语法,我认为它与 mariaDB 不兼容。
-
这是错误:#1064 'REFERENCING NEW AS N FOR EACH ROW WHEN (EXISTS (SELECT IDBadge FROM User W' line 3) 附近的 SQL 中的语法错误