【问题标题】:Find out if ID was auto-incremented in before insert-trigger?找出 ID 是否在插入触发器之前自动递增?
【发布时间】:2013-05-12 23:12:57
【问题描述】:

在 MySQL 中,我需要知道是否可以在 BEFORE INSERT 触发器中确定主键 ID (NEW.Id) 是否由 自动增量值 自动生成,或者是否ID 是手动设置的。

这样做的原因是在我的应用程序中,行既可以使用设置的 ID 插入,也可以依赖于自动增量值,但我需要知道这一点。

如果在插入行时留空,则之前触发器中 NEW.Id 的值是多少? 它似乎不是 NULL,所以它是否已经设置为当前的自动增量值? 但是如何确定是否发生了这种情况?

更新: BEFORE INSERT 触发器中的整数类型主键 (NEW.Id) 的值似乎是 0(不是 NULL!),即使没有为此列设置默认值。

【问题讨论】:

  • 为什么你需要知道这个? (不知道是否可能)
  • 我正在使用一个单独的表来实现我自己的序列解决方案,该表包含每个表的新序列值。但是我还是想用 MySQL 的自增特性……

标签: mysql triggers auto-increment


【解决方案1】:

您需要将触发器放在AFTER 选项上,然后您将最后返回ID,如果您将触发器放在BEFORE 选项上,执行的操作将为您提供零值,因为没有任何价值。

【讨论】:

    猜你喜欢
    • 2019-04-28
    • 1970-01-01
    • 2011-08-24
    • 1970-01-01
    • 2023-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-15
    相关资源
    最近更新 更多