gpt4 book ai didi

mysql - 使用自动增量字段插入触发器之前/之后

转载 作者:行者123 更新时间:2023-11-29 01:04:48 29 4
gpt4 key购买 nike

我在使用应该修复表中列的插入触发器时遇到了问题:

id        - auto increment int
thread_id - int [NULL]

我想要实现的是将 thread_id 设置为 id 如果它被插入为 NULL。我失败了,因为:

  • 使用 before insert 触发器仍然没有 id 的新值并且神秘地将 thread_id 设置为 0
  • 使用 after insert - update 触发器抛出合理的异常无法更新表,因为它已被语句使用
  • 不能添加额外的自增字段

这个问题的解决方案是什么?

最佳答案

我发现获得新增量值的唯一方法不是花哨的形式。我假设您要插入一个新值,所以它应该是最大 id + 1:

CREATE TRIGGER mytrigger BEFORE INSERT ON yourtable 
FOR EACH ROW BEGIN
SET NEW.thread_id = IF(
ISNULL(NEW.thread_id),
(SELECT MAX(id) + 1 FROM yourtable),
NEW.thread_id);
END;

它适用于我的情况,如果它为 NULL,它将获得最大 ID + 1,这将是新 ID。

关于mysql - 使用自动增量字段插入触发器之前/之后,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5991464/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com