代码之家  ›  专栏  ›  技术社区  ›  Robert Strauch

MariaDB中的自动增量只保存在内存中

  •  0
  • Robert Strauch  · 技术社区  · 7 年前

    AUTO_INCREMENT 特定表的值:

    ALTER TABLE table_name AUTO_INCREMENT=1000000;
    

    动机
    我们在Docker映像中运行MariaDB以用于开发目的,也就是说,我们可以随时销毁和重建数据库。但是,此特定表需要使用 划船。所以我们把剧本复制到 /docker-entrypoint-initdb.d 在构建Docker镜像时。

    但是这不会有任何影响,直到 INSERT 会跟着来。

    存储在内存中。当服务器重新启动时,计数器为 重新初始化,这将取消任何自动增量=N的效果

    https://mariadb.com/kb/en/library/auto_increment-handling-in-xtradbinnodb/

    不管怎样,我都不知道该怎么办。为了使上面的SQL语句生效(直到我们准备好升级到MariaDB 10.2.4或更高版本),我必须做出哪些语句或配置?

    1 回复  |  直到 7 年前
        1
  •  0
  •   Rick James diyism    7 年前

    唯一的用途是 ALTER 是立即 INSERT 一行,并将其赋值为1000000。一旦插入该行,该子句就没有进一步的效果——除非删除所有行并需要在该值处重新启动。

    另一种方法是显式地为第一个 .

    因为我还没有找到一个“合理”的理由来使用这个条款,请解释一下你想做什么。也许我们可以想出一个有用的解决办法。

    在未来,我认为会有一个变化,即AI值在索引中保持不变。这已经是MySQL 8.0中的一个特性。