首页 > 解决方案 > 创建 MySQL 触发器时出现语法错误

问题描述

我尝试创建触发器,但在执行 SQL 后出现此错误:

# 1064 - 你的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,以在第 4 行的“DECLARE temp INT”附近使用正确的语法

这是我的触发器:

CREATE TRIGGER hesap 

AFTER INSERT ON uber  

 DECLARE temp INT;

 BEGIN    IF uber.il='ANKARA' THEN 
  temp=5+(uber.mesafe*0.5);  

 ELSEIF uber.il='ISTANBUL' THEN  
 temp=10+(uber.mesafe*0.5);   

ELSEIF uber.il='IZMIR' THEN  
 temp=3+(uber.mesafe*0.5);  

 END IF; 
     
INSERT INTO fatura VALUES(uber.uid,temp)

END;

标签: mysqltriggersmysql-error-1064

解决方案


我发现有一些语法错误,请查看以下代码:

delimiter $$
CREATE TRIGGER hesap 
AFTER INSERT ON uber FOR EACH ROW 
BEGIN 

DECLARE temp integer;

    IF new.il = 'ANKARA' THEN
        temp= 5+(uber.mesafe*0.5);
    ELSEIF new.il='ISTANBUL' THEN  
        temp=10+(uber.mesafe*0.5);   
    ELSEIF new.il='IZMIR' THEN  
        temp=3+(uber.mesafe*0.5);
    END IF;
INSERT INTO fatura VALUES(new.uid,temp);

END
delimiter ;

推荐阅读