mysql如何迅速获得库中无主键的表
发布时间:2022-02-11 14:53:07 所属栏目:搜索优化 来源:互联网
导读:这篇文章将为大家详细讲解有关mysql如何快速获得库中无主键的表,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 1、查看表主键信息 --查看表主键信息 SELECT t.TABLE_NAME, t.CONSTRAINT_TYPE, c.COLUMN_NAME, c.ORDIN
这篇文章将为大家详细讲解有关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字节大小的指针作为主键。 (编辑:92站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |