如何查找數據庫中所有表中的所有主鍵,該主鍵沒有自動增量標識符。我們有大量的表,並希望識別所有在主鍵上沒有自動增量標識符的表。如何查找所有沒有自動增量的主鍵
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