如何在mysql中获取所有具有自动增量主键的表?

Posted

技术标签:

【中文标题】如何在mysql中获取所有具有自动增量主键的表?【英文标题】:How to get all the tables with auto increment primary key in mysql? 【发布时间】:2020-02-17 11:15:58 【问题描述】:

我的 mysql 数据库中有巨大的表,我想获取所有具有自动递增列和列名的表。谁能教我怎么做?

【问题讨论】:

How to see indexes for a database or table in MySQL?的可能重复 @RaymondNijland 抱歉,我不这么认为。我正在考虑从 information_schema.Columns 获取信息。 【参考方案1】:

我认为您可以从 INFORMATION_SCHEMA 架构中的 COLUMNS 表中获取该信息。

例如

select TABLE_NAME, COLUMN_NAME from COLUMNS where `COLUMN_KEY` = 'PRI' and EXTRA like '%auto_increment%'

【讨论】:

不知道你可以在不定义 AUTO_INCREMENT 的情况下定义 PRIMARY KEY.. -> db-fiddle.com/f/jbADd4roKNmxXca4C2i5QY/0 你测试了吗?在 mysql 8 上进行一些测试后不正确。 那么在该表中,您不会在列 a 上自动递增。尝试在不定义列 a 的情况下进行两次插入。 这是一个“示例”案例的意思。@LazerBass,this 会更有意义.. 使用 EXTRA LIKE '%auto_increment%' 可能会更好一些,因为从手册解释额外的 coiumn 的方式来看,额外可以有多个值..

以上是关于如何在mysql中获取所有具有自动增量主键的表?的主要内容,如果未能解决你的问题,请参考以下文章

如何将数据插入具有自动递增主键的 MySQL?

如何使用 Hibernate 在 MySQL 中获取自增主键值

如何在SQL Server中获取具有复合主键的表列表?

如何在具有symfony主键的表中插入值

方镁石。插入后如何获取自动增量主键的值,除了last_insert_rowid()?

如何使用 Spring Boot 在 DynamoDB 中添加具有自动增量键的新项目