-4

是否有任何我们运行的 SQL 查询,它会将每个表的主表更新IDAUTO_INCREMENT(选中)?

4

1 回答 1

2

这几乎不是一个真正的问题,但我今天心情很好,我会给你你需要的资源,从那里你可以了解如何处理这些资源以实现你的目标。

首先,列出数据库中的所有表:

  • 使用 MySQLi 列出数据库中的所有表

    有很多方法。

    SHOW TABLES 是最简单的 SQL 语句。如果您想了解更多详细信息或进行一些过滤等,也可以查看 INFORATION_SCHEMA.TABLES。

    SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA LIKE 'your_database';

然后,遍历您的结果,然后对于每次迭代,您都需要找到该表的主键:

  • 获取表的主键?

    更好的方法是使用 SHOW KEYS,因为您并不总是可以访问 information_schema。以下作品:

    SHOW KEYS FROM table WHERE Key_name = 'PRIMARY'
    Column_name will contain the name of the primary key.
    

现在使用给定表的列名,将列修改为使用该最大值自动递增。

最后,获取列的max()primary_key并保存该数字,以便您可以使用此值设置此表的自动增量选项,因此自动增量行为将从正确的位置开始。

于 2013-03-06T18:27:11.927 回答