首页 > 解决方案 > 在 MySQL 中创建此触发器时如何修复此错误?

问题描述

我创建了两个几乎相同的触发器。

触发器如下所示:

触发器 1

delimiter !!
drop trigger if exists updated_movie !!
create trigger update_movie after update on movie

for each row 

begin

    insert into movie_modification
    values (old.id, old.title, old.id_director, old.year, old.duration, old.country, old.movie_facebook_likes, old.imdb_score, old.gross, old.budget, true);

end !!
delimiter ;

触发器 2

delimiter !!
drop trigger if exists inserted_movie !!
create trigger inserted_movie after insert on movie

for each row

begin

    insert into movie_modification
    values (new.id_movie, new.title, new.id_director, new.year, new.duration, new.country, new.movie_facebook_likes, new.imdb_score, new.gross, new.budget, false);

end !!
delimiter ;

当我更改触发器上的一些东西时,我不得不放弃它们并创建它们几次。现在我有了触发器的最终格式,我执行了所有第二个触发器 ( inserted_movies),它会成功删除并再次创建。

但是当我执行第一个(updated_movies)时,我得到以下输出和错误:

0 行受影响,1 个警告:1360 触发器不存在错误代码:1359。触发器已存在

MySQL不是自相矛盾吗?我不明白为什么这只发生在其中一个触发器上。它们几乎相同。

我怎样才能解决这个问题?

标签: mysqlsqltriggers

解决方案


推荐阅读