我试图在事件之后选择@mess(插入impiegato ...),因此在触发器执行后也是如此,但变量的值始终为null。 我该如何解决这个问题?
`DELIMITER //
CREATE TRIGGER NomeNoCognome
BEFORE INSERT ON impiegato FOR EACH ROW
BEGIN
IF new.Nome IN (SELECT Cognome FROM impiegato) OR new.Nome=new.Cognome
THEN SET @mess='Non è possibile inserire un nome uguale ad un cognome della tabella!';
SET new.Nome=null;
END IF;
END;
//`
答案 0 :(得分:0)
您应该使用SIGNAL
代替。
SIGNAL是“返回”错误的方法。 SIGNAL向处理程序,应用程序的外部部分或客户端提供错误信息。此外,它还提供对错误特征(错误号,SQLSTATE值,消息)的控制。如果没有SIGNAL,则需要采用诸如故意引用不存在的表以使例程返回错误的变通方法。
链接的手册页中有很多例子。