为了在一个表中保存一个数据,我创建了两个触发器,
当我在同一个表“enr”中有任何更改或任何新数据时,我正在尝试在表“enr”中保存一些消息。
我注意到我不能使用'enr'上的触发器来更新'enr'中的某些列,所以我创建了另一个名为'emailmessaging'的表来执行触发器以在那里保存数据,并在'emailmessaging'上的另一个触发器之后更新'enr'中的数据,所以我将避免在触发器状态中的同一个表中更新或添加新数据。
当我有新的数据时,我第一次触发'enr':
delimiter //
create trigger MessageMainEmail
after insert on ENR
for each row
begin
DO SLEEP(1);
insert into EmailMessaging(AssetNumber,MainMessage,Subject) values (New.Manufactor,concat('ENR has been changed! The Change occured in asset number: ',New.Manufactor,CHAR(13),'Thanks' ),concat(New.Manufactor,' Has been changed in ENR!'));
end //
delimiter ;
当我在enr中更新时,“enr”的第二个触发器:
delimiter //
create trigger MessageMainEmailUpd
before update on ENR
for each row
begin
DO SLEEP(1);
insert into EmailMessaging(AssetNumber,MainMessage,Subject,date) values (New.Manufactor,concat('ENR has been changed! The Change occured in asset number: ',New.Manufactor,CHAR(13),'Thanks' ),concat(New.Manufactor,' Has been changed in ENR!'),Now());
end //
delimiter ;
以及“emailmessaging”上的第三个触发器,用于更新enr中的数据:
delimiter //
create trigger MessageMainEmailToENR
after insert on EmailMessaging
for each row
begin
DO SLEEP(3);
update ENR set MainMessage=New.MainMessage,Subject=New.Subject,datedate=New.Date where Manufactor=New.AssetNumber ;
end //
delimiter ;
我用睡眠来确保触发器不会同时发生。
错误:
更新数据库时出错-无法更新存储函数/触发器中的表“enr”,因为调用此存储函数/触发器的语句已使用它。
我将感谢任何帮助修复这个或新的方式。
暂无答案!
目前还没有任何答案,快来回答吧!