在MySQL中创建触发器时出错
我是sql的初学者,我是一个出错的人 #1064-您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以了解要使用的正确语法 接近'@nissue INT默认值0;set@nisue:=(从代码中设置问题id 其中第5行的代码为' 对于代码在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;
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 ;