Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在MySQL中创建触发器时出错_Mysql_Triggers - Fatal编程技术网

在MySQL中创建触发器时出错

在MySQL中创建触发器时出错,mysql,triggers,Mysql,Triggers,我是sql的初学者,我是一个出错的人 #1064-您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以了解要使用的正确语法 接近'@nissue INT默认值0;set@nisue:=(从代码中设置问题id 其中第5行的代码为' 对于代码 DELIMITER $$ CREATE TRIGGER ai_SMS AFTER INSERT ON SMS FOR EACH ROW BEGIN DECLARE @nissue INT DEFAULT 0;

我是sql的初学者,我是一个出错的人

#1064-您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以了解要使用的正确语法 接近'@nissue INT默认值0;set@nisue:=(从代码中设置问题id 其中第5行的代码为'

对于代码

DELIMITER $$
CREATE TRIGGER ai_SMS
    AFTER INSERT ON SMS
    FOR EACH ROW 
BEGIN
       DECLARE @nissue INT DEFAULT 0;
       set @nissue := (set issue_id from Codes where code=NEW.msgbody);
 IF ( EXISTS(SELECT * FROM SMS_fltr AS s INNER JOIN Persons AS  p ON s.sender=p.mobile_number WHERE  s.numissue=@nissue and s.sender=NEW.sender))
       THEN
              UPDATE SMS_fltr set time=NEW.time ,code=NEW.msgbody where  numissue=@nissue and sender=NEW.sender;

       ELSE

              INSERT into SMS_fltr (sender,time,code,numissue) VAUES (NEW.sender,NEW.time,NEW.code,nissue);
       END IF
END$$
DELIMITER ;
我正在尝试为表创建触发器

任何人都能告诉我犯了什么错误,解决办法是什么吗?

建议#1:不要声明 建议#2:将其声明为正则变量 试试看!!!
DELIMITER $$
CREATE TRIGGER ai_SMS
    AFTER INSERT ON SMS
    FOR EACH ROW 
BEGIN
       set @nissue := (set issue_id from Codes where code=NEW.msgbody);
 IF ( EXISTS(SELECT * FROM SMS_fltr AS s INNER JOIN Persons AS  p ON s.sender=p.mobile_number WHERE  s.numissue=@nissue and s.sender=NEW.sender))
       THEN
              UPDATE SMS_fltr set time=NEW.time ,code=NEW.msgbody where  numissue=@nissue and sender=NEW.sender;

       ELSE

              INSERT into SMS_fltr (sender,time,code,numissue) VAUES (NEW.sender,NEW.time,NEW.code,nissue);
       END IF
END$$
DELIMITER ;
DELIMITER $$
CREATE TRIGGER ai_SMS
    AFTER INSERT ON SMS
    FOR EACH ROW 
BEGIN
       DECLARE nissue INT DEFAULT 0;
       set nissue := (set issue_id from Codes where code=NEW.msgbody);
 IF ( EXISTS(SELECT * FROM SMS_fltr AS s INNER JOIN Persons AS  p ON s.sender=p.mobile_number WHERE  s.numissue=@nissue and s.sender=NEW.sender))
       THEN
              UPDATE SMS_fltr set time=NEW.time ,code=NEW.msgbody where  numissue=@nissue and sender=NEW.sender;

       ELSE

              INSERT into SMS_fltr (sender,time,code,numissue) VAUES (NEW.sender,NEW.time,NEW.code,nissue);
       END IF
END$$
DELIMITER ;