在InnoDB存储引擎中,表是按照主键顺序组织存放的。在InnoDB存储引擎表中,每张表都有主键(primary key),如果在创建表时没有显式地定义主键,则InnoDB存储引擎会按如下方式选择或创建索引:
当表中有多个非空唯一索引时,InnoDB存储引擎选择建表时第一个定义的非空索引为主键。
create table t_sample ( a int null, b int not null, c int not null, unique key(a), unique key(c), unique key(b) );
insert into t_sample select 1, 2, 3; insert into t_sample select 1, 4, 5; insert into t_sample select null, 9, 7;
查询主键:
select t.*, t._rowid from t_sample t;
_rowid可以显示表的主键,从上图可以看出,虽然b和c都是唯一索引,但是c是先定义的,故InnoDB存储引擎将其视为主键。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有