InnoDB儲存引擎表的主鍵

來源:互聯網
上載者:User

InnoDB儲存引擎表的主鍵

在InnoDB儲存引擎中,表是按照主鍵順序組織存放的。在InnoDB儲存引擎表中,每張表都有主鍵(primary key),如果在建立表時沒有顯式地定義主鍵,則InnoDB儲存引擎會按如下方式選擇或建立索引:

  • 首先判斷表中是否有非空的唯一索引(unique not null),如果有,則該列即為主鍵;
  • 如果不符合條件1,InnoDB儲存引擎自動建立一個6位元組大小的指標(rowid列)。

當表中有多個非空唯一索引時,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儲存引擎將其視為主鍵。

本文永久更新連結地址:https://www.bkjia.com/Linux/2018-03/151174.htm

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.