SQL查询将所有主键转换为AUTO_INCREMENT?

时间:2013-03-06 17:47:59

标签: php mysql sql phpmyadmin

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

1 个答案:

答案 0 :(得分:2)

这几乎不是一个真正的问题,但我今天感觉心情愉快,我将为您提供所需的资源,您可以从中了解如何处理这些资源以实现您的目标。

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

  • list all tables in a database with MySQLi
      

    有很多方法。

         

    SHOW TABLES是执行此操作的最简单的SQL语句。您可以   如果你想要更多,也可以看看INFORATION_SCHEMA.TABLES   细节或做一些过滤等。

         

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

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

  • Get primary key of table?
      

    更好的方法是使用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值并保存该数字,以便您可以使用此值设置此表的自动增量选项,因此,自动增量行为将从正确的位置。