mysql - 创建 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;
解决方案
我发现有一些语法错误,请查看以下代码:
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 ;
推荐阅读
- python - 如何写 np.where 变量等于列表中的任何一个,做点什么?
- c# - C# 无法从方法返回错误消息
- typescript - TypeScript Transformers:转换导入的文件
- php - 如何在drupal中使这条消息多语言?
- javascript - 如何从用户创建的列表(购物车)中删除元素
- reactjs - Chrome 调试器已暂停
- java - QAF 框架错误:无法找到或加载主类 org.testng.remote.RemoteTestNG
- android - AndroidKeyStore KeyStoreException:未初始化的密钥库
- python - 从唯一列表中查找所有子集
- html - 在 Bootstrap 中创建具有 2 列的行中的粘性列