【问题标题】:PROBLEM WITH - AUTO_INCREMENT VALUE IN TABLE_SCHEMA NOT UPDATING问题 - TABLE_SCHEMA 中的 AUTO_INCREMENT 值未更新
【发布时间】:2021-05-05 20:46:18
【问题描述】:

场景

  1. ALTER TABLE {TABLE NAME} AUTO_INCREMENT = 1;

  2. 插入 {TABLE NAME} ({COLUMN}) 值 (1); (这只是自动增量更新后的表中的记录)

  3. 从 information_schema.TABLES 中选择 AUTO_INCREMENT WHERE TABLE_SCHEMA = {数据库名称} AND TABLE_NAME = {TABLE NAME};

最后一个选择 auto_increment 在步骤 1) 中执行 alter table 之前返回旧值,我不明白为什么要修复它,或者可能在步骤 1) 中修改表不是重置 auto_increment 的正确方法。

谢谢

PS。我知道一点,但不是全部。我正在研究这个问题,但没有找到满意/解释性的答案。

【问题讨论】:

  • 为要设置自动增量的列设置主键
  • 只是一个问题。为什么需要信息模式中的这些信息?你可以通过选择 max() 来获取我最后一次,通常你可以在插入后使用 lastInsertID 来获取我一直以来的最后一次
  • 我喜欢低调为什么。

标签: mysql auto-increment


【解决方案1】:

我猜你必须设置 AUTO_INCREMENT = 1 而不是 0

【讨论】:

    【解决方案2】:

    INFORMATION_SCHEMA 不会更新以反映最近的更改。 MySQL 8.0 对其进行了更改,因此它仅每 24 小时更新一次。

    你可以这样设置:

    SET GLOBAL information_schema_stats_expiry=0;
    

    这将使 INFORMATION_SCHEMA 立即更新,但会产生一些系统开销。

    【讨论】:

      【解决方案3】:

      我遇到了信息架构没有立即更新的问题。

      为了解决这个问题,我跑了:

      SET PERSIST information_schema_stats_expiry = 0;
      

      因为使用 SET GLOBAL 对我不起作用。

      希望这对其他人有所帮助。

      【讨论】:

        猜你喜欢
        • 2013-06-28
        • 1970-01-01
        • 1970-01-01
        • 2010-10-05
        • 1970-01-01
        • 2011-04-05
        • 1970-01-01
        • 2017-12-08
        • 2011-12-03
        相关资源
        最近更新 更多