【问题标题】:MySQL 5.0 can not drop and create triggerMySQL 5.0 不能删除和创建触发器
【发布时间】:2015-04-19 06:25:34
【问题描述】:

我使用的是 MySQL 5.0。我尝试删除并重新创建触发器。 当我放下触发器时,它说:

mysql> drop trigger ads_delete;
ERROR 1360 (HY000): Trigger does not exist

然后我尝试创建具有相同名称的触发器。它说:

ERROR 1359 (HY000): Trigger already exists

这是我的触发器:

delimiter //

create TRIGGER ads_delete
BEFORE INSERT ON ads
FOR EACH ROW
BEGIN
update params set ads_count=ads_count-1, freq_weight=freq_weight-NEW.freq;
END//

【问题讨论】:

  • 您是否查找过错误代码详细信息?

标签: mysql triggers mysql-5.0


【解决方案1】:

您需要像这样删除触发器:

USE db5;
DROP TRIGGER ads_delete;

您的触发器位于 db5 模式中。

编辑:

正如 OP 评论的那样,问题是

BEFORE INSERT ON ads

即,他正在尝试使用相同的指令创建两个触发器。 (可能是复制粘贴问题

【讨论】:

  • 谢谢你。但我发现了问题。当我复制/粘贴现有​​的插入触发器时,我突然使用相同的指令“插入广告之前”创建了两个触发器。无论如何感谢你。我认为这个问题应该删除。
  • @Jeff_Alieffson:- 我已经用适合您的解决方案更新了我的答案。我不确定你是否应该删除它,但是它可能会帮助将来遇到同样问题的人。
  • 好的。拉胡尔。我的错误可能会帮助其他人。所以我保留了它。
  • @Jeff_Alieffson:- 没问题!
【解决方案2】:

我发现了错误。原因是我的疏忽。我复制/粘贴了我的 INSERT 触发器,当将触发器名称从 ads_insert 更改为 ads_delete 时,我忘记将 BEFORE INSERT ON ads 更改为 删除广告之前

谢谢大家。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-05
    • 2016-02-13
    相关资源
    最近更新 更多