加入收藏 | 设为首页 | 会员中心 | 我要投稿 徐州站长网 (https://www.0516zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > 搜索优化 > 正文

mysql如何迅速获得库中无主键的表

发布时间:2022-02-11 14:03:39 所属栏目:搜索优化 来源:互联网
导读:这篇文章将为大家详细讲解有关mysql如何快速获得库中无主键的表,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 1、查看表主键信息 --查看表主键信息 SELECT t.TABLE_NAME, t.CONSTRAINT_TYPE, c.COLUMN_NAME, c.ORD
       这篇文章将为大家详细讲解有关mysql如何快速获得库中无主键的表,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
 
1、查看表主键信息
 
--查看表主键信息
SELECT
 t.TABLE_NAME,
 t.CONSTRAINT_TYPE,
 c.COLUMN_NAME,
 c.ORDINAL_POSITION
FROM
 INFORMATION_SCHEMA.TABLE_CONSTRAINTS AS t,
 INFORMATION_SCHEMA.KEY_COLUMN_USAGE AS c
WHERE
 t.TABLE_NAME = c.TABLE_NAME
 AND t.CONSTRAINT_TYPE = 'PRIMARY KEY'
 AND t.TABLE_NAME = '<TABLE_NAME>'
 AND t.TABLE_SCHEMA = '<TABLE_SCHEMA>';
 
2、查看无主键表
 
--查看无主键表
SELECT table_schema, table_name,TABLE_ROWS
FROM information_schema.tables
WHERE (table_schema, table_name) NOT IN (
SELECT DISTINCT table_schema, table_name
FROM information_schema.columns
WHERE COLUMN_KEY = 'PRI'
)
AND table_schema NOT IN ('sys', 'mysql', 'information_schema', 'performance_schema');
 
3、无主键表
 
在Innodb存储引擎中,每张表都会有主键,数据按照主键顺序组织存放,该类表成为索引组织表 Index Ogranized Table
 
如果表定义时没有显示定义主键,则会按照以下方式选择或创建主键:
 
1) 先判断表中是否有"非空的唯一索引",如果有
 
如果仅有一条"非空唯一索引",则该索引为主键
 
如果有多条"非空唯一索引",根据索引索引的先后顺序,选择第一个定义的非空唯一索引为主键。
 
2) 如果表中无"非空唯一索引",则自动创建一个6字节大小的指针作为主键。

(编辑:徐州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读