如何查找数据库中所有表中的所有主键,该主键没有自动增量标识符。我们有大量的表,并希望识别所有在主键上没有自动增量标识符的表。如何查找所有没有自动增量的主键
2
A
回答
5
您可以在一个数据库中提取从information_schema.columns
表
select distinct table_name
from information_schema.columns
where table_schema = 'DATABASENAME'
and table_name not in (select table_name
from information_schema.columns
where table_schema = 'DATABASENAME'
and column_key = 'PRI'
and data_type = 'int'
and extra = 'auto_increment')
这看起来对所有表信息具有auto_increment
列,然后返回剩余的表。这也可以正确检测带复合键的表格。
1
你可以在表information_schema.columns
中找到那种信息。如果自动递增,则列column_key
将为PRI
,并且列extra
将包含auto_increment
。
SELECT
table_schema,
table_name,
column_name
FROM
information_schema.columns
WHERE
column_key = 'PRI'
AND extra <> 'auto_increment'
AND data_type = 'int'
在this SQL Fiddle你可以看到,在样品表中有“优先级”,并在相应的栏目“AUTO_INCREMENT”。
相关问题
- 1. Postgres的表没有设置自动增量的主键
- 2. MySQL的触发自动增量为varchar(没有主键)
- 3. Python - 没有自动增量主键值的Sqlite插入元组
- 4. Oracle DB - 没有序列的主键自动增量列
- 5. 没有自动增量sqlite3中的Integer主键
- 6. 如何创建自动增量主键?
- 7. npoco.Insert <T>表上没有失败自动增量主键
- 8. 自动增量主键
- 9. 主键自动增量
- 10. 如何找到没有自动增量的表的行错误?
- 11. 重复键主键自动增量
- 12. 是否有没有用于定义自动增量列作为主键
- 13. SQL Server自动增加没有主键的列
- 14. 在mysql中添加具有自动增量的主键
- 15. 插入到带有自动增量主键的视图中?
- 16. 具有自动增量部分的复合主键
- 17. 带有组合主键自动增量一部分的SQL 2008复合主键
- 18. 作为主键在所有表上自动递增ID
- 19. 如何增加“主键”自动增加数量?
- 20. SQL - 没有标识种子或序列的主键自动增量
- 21. 查找后没有使用主键
- 22. 插入自动增量主键到现有表
- 23. 主键自动增量为-1,-2,-3
- 24. mysql主键自动增量问题
- 25. 整数主键不自动增量
- 26. 更改主键自动增量
- 27. Hibernate/JPA SQLServer主键自动增量
- 28. Int自动增量主键和GUID列
- 29. 两个主键&自动增量
- 30. mysql无限主键自动增量
我也会添加'data_type ='int',因为你不想列出PK字段是字符数据。 – 2013-03-19 13:56:57