如何在SQL更新中创建“自动增量”触发器

时间:2018-07-04 14:18:33

标签: mysql triggers

我想在行计数器的更新上模拟自动增量。

我的触发条件是:

CREATE DEFINER = CURRENT_USER TRIGGER `db`.`token_AFTER_UPDATE` AFTER UPDATE ON `token` FOR EACH ROW
BEGIN
  UPDATE `token` SET `counter` = `counter` + 1 WHERE `id` = NEW.id;
END

但是我遇到一个错误:

1442-无法更新存储函数/触发器中的表“令牌”,因为调用该存储函数/触发器的语句已使用该表。

1 个答案:

答案 0 :(得分:0)

由于您的描述不够详细,无法给出正确的答案,因此以下内容可能会有所帮助:

选项1: 您可以创建一个过程,该过程选择最大值,将其加1并更新最后更新的行。

选项2: 如果您不在某处将该表用作参考,则将AI列设置为PK,然后使用“ REPLACE INTO ...”代替插入/更新。