qq_38927518
2017-08-18 05:44 阅读 1.2k

mysql单表update触发器

新建触发器
DELIMITER ||

DROP TRIGGER IF EXISTS inventory_tig||

CREATE TRIGGER inventory_tig AFTER UPDATE ON pt_sessions_level FOR EACH ROW

BEGIN

IF new.inventory = 0 THEN

UPDATE
pt_sessions_level
SET
STATUS = 0
WHERE inventory = 0;
END IF;

END||

当我执行update语句时
UPDATE
pt_sessions_level
SET
inventory = 0
WHERE sessionslevelid = 683

会报Can't update table 'pt_sessions_level' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.

异常。哪位大神解决下

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

2条回答 默认 最新

  • dl0246 dl0246 2017-08-18 05:50

    问题是你本身就是更新触发器,里面又更新自己。实施用关键字new.

    点赞 评论 复制链接分享
  • dl0246 dl0246 2017-08-18 05:50

    试试用关键字获取最后变更的一行 用set new.***.
    错别字害死人。。

    点赞 评论 复制链接分享