0
有一个表,这个模式触发器以防止在条件缺失的MySQL
表演(PerformerID,PerformerName,街道,城市,省,邮编,ActivityID)
我需要定义一个触发器如果删除的ActivityID对于表是唯一的,则防止删除。换句话说,如果某人尝试删除一个Performer,当他/她是唯一一个具有某个ActivityID的整个表时,触发器应该触发并避免删除。否则触发不应该中断。
我试过下面的代码,但它给我一个语法错误。
CREATE TRIGGER deletePerformer BEFORE DELETE ON Performers
FOR EACH ROW
BEGIN
If (Performers.ActivityID FROM INSERTED != Performers.ActivityID FROM Peformers)
Begin
RAISERROR ('Deletion is Not Allowed!', 16, 1)
Return
End
END;
任何帮助是非常赞赏。
感谢您的回答。 'Return'和'End if'之后的那些分号不应该在那里吗?我删除了它们并尝试了你的代码,但它仍然给我第11行上的错误.. – Arcane
错误1064(42000):你的SQL语法有错误;检查与您的MySQL服务器版本相对应的手册,以便在'('Deletion is Not Allowed',16,1)附近使用正确的语法“ 返回 End if END'at line 11 – Arcane
@Arcane。 。 。这是有道理的,因为'RAISEERROR'是SQL Server使用的。 MySQL使用'SIGNAL'。 –