如何选择在触发器(mysql)中声明的变量?

时间:2017-11-07 10:22:37

标签: mysql variables select triggers

我试图在事件之后选择@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;
 //`

1 个答案:

答案 0 :(得分:0)

您应该使用SIGNAL代替。

  

SIGNAL是“返回”错误的方法。 SIGNAL向处理程序,应用程序的外部部分或客户端提供错误信息。此外,它还提供对错误特征(错误号,SQLSTATE值,消息)的控制。如果没有SIGNAL,则需要采用诸如故意引用不存在的表以使例程返回错误的变通方法。

链接的手册页中有很多例子。