数据库
首页 > 数据库> > 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';

 

标签:information,找出,name,mysql,table,TABLE,SCHEMA,主键,schema
来源: https://www.cnblogs.com/JennyYu/p/16333098.html