MySql教程

mysql 找出没有主键的表

本文主要是介绍mysql 找出没有主键的表,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1,根据约束字典表table_constraints 来查

 

SELECT
t.table_schema AS database_name,
t.table_name
FROM
information_schema.TABLES t
LEFT JOIN information_schema.TABLE_CONSTRAINTS c ON t.TABLE_SCHEMA = c.TABLE_SCHEMA
AND t.table_name = c.TABLE_NAME
AND c.CONSTRAINT_TYPE = 'PRIMARY KEY'
WHERE
C.CONSTRAINT_TYPE IS NULL
AND T.TABLE_TYPE = 'BASE TABLE'
AND T.TABLE_SCHEMA NOT IN ( 'mysql', 'information_schema', 'performance_schema', 'sys' );

 

 

2.根据统计信息columns表来查

 

SELECT
c.table_schema AS database_name,
c.table_name
FROM
information_schema.COLUMNS c
LEFT JOIN information_schema.TABLES t ON t.TABLE_SCHEMA = c.TABLE_SCHEMA
AND t.table_name = c.TABLE_NAME
WHERE
c.TABLE_SCHEMA NOT IN ( 'mysql', 'information_schema', 'performance_schema', 'sys' )
AND t.table_type = 'BASE TABLE'
GROUP BY
c.TABLE_SCHEMA,
c.TABLE_NAME
HAVING
GROUP_concat( c.COLUMN_key ) NOT REGEXP 'PRI|UNI';

 

这篇关于mysql 找出没有主键的表的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!