Mysql 我正在尝试学习sql上的触发器,并得到以下错误
这是我正在执行的代码Mysql 我正在尝试学习sql上的触发器,并得到以下错误,mysql,triggers,Mysql,Triggers,这是我正在执行的代码 create trigger salarydifff after update on office for each row declare sal_diff number begin sal_diff := :new.salary- :old.salary end 我得到了以下错误: Error Code : 1064 You have an error in your SQL syntax; check the manual that corr
create trigger salarydifff
after update on office
for each row
declare sal_diff number
begin
sal_diff := :new.salary- :old.salary
end
我得到了以下错误:
Error Code : 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'declare sal_diff number begin sal_diff := :new.salary- :old.salary end' at line 4
您的代码看起来像Oracle而不是mysql Mysql看起来像这样
drop trigger if exists salarydiff;
delimiter //
create trigger salarydifff
after update on office
for each row
begin
declare sal_diff integer ;
set sal_diff = new.amt - old.amt ;
end //
delimiter ;
@juergend没有收到你的评论。你能详细说明一下吗?你应该得到一个数据库工具,比如MySQL Workbench,然后一步一步地检查错误。查看如何声明变量。错误显示问题的确切位置->声明。没有不精确的
number
数据类型。我也尝试过将其更改为整数,但没有太大区别@juergend你能帮我处理实际的代码吗。非常感谢@P.SalmonAlso我还有一个疑问。我想显示变量sal_diff的值,但由于触发器无法返回值,因此无法显示该值。这是满足要求标准的另一种方法@P.salmoni如果您想记录更改,那么您可以创建一个日志文件并从触发器插入到其中,然后在方便的时候从中选择。您能详细说明一下吗@鲑鱼