mysql復合主鍵的區別 聯合主鍵和復合主鍵區別

2021-10-19 04:50:39 字數 1159 閱讀 6685

什麼是資料表的復合主鍵

所謂的復合主鍵 就是指你表的主鍵含有乙個以上的字段組成

比如create table test

name varchar(19),

id number,

value varchar(10),

primary key (name,id)

上面的name和id欄位組合起來就是你test表的復合主鍵

它的出現是因為你的name欄位可能會出現重名,所以要加上id欄位這樣就可以保證你記錄的唯一性

一般情況下,主鍵的字段長度和字段數目要越少越好

聯合主鍵

什麼是聯合主鍵?

(主鍵原則上是唯一的,別被唯一值所困擾。)

顧名思義就是多個主鍵聯合形成乙個主鍵組合

乙個簡單的例子

主鍵a跟主鍵b組成聯合主鍵

主鍵a跟主鍵b的資料可以完全相同(困擾吧,沒關係),聯合就在於主鍵a跟主鍵b形成的聯合主鍵是唯一的。

下例主鍵a資料是1,主鍵b資料也是1,聯合主鍵其實是11,這個11是唯一值,絕對不充許再出現11這個唯一值。(這就是多對多關係)

主鍵a資料 主鍵b資料

1      1

2      2

3      3

主鍵a與主鍵b的聯合主鍵值最多也就是

create table `products_description` (

`products_id` int(11) not null,

`language_id` int(11) not null default

'1',

`products_name` varchar(64) not null default

`products_description` text,

`products_short_description` text,

`products_url` varchar(255) default null,

`products_viewed` int(5) default '0',

primary key

(`products_id`,`language_id`),

key `products_name` (`products_name`)

) engine=innodb default charset=latin1;

聯合主鍵和復合主鍵區別

什麼是資料表的復合主鍵 所謂的復合主鍵 就是指你表的主鍵含有乙個以上的字段組成 比如 create table test name varchar 19 id number,value varchar 10 primary key name,id 上面的name和id欄位組合起來就是你test表的復...

聯合主鍵和復合主鍵區別

什麼是資料表的復合主鍵 所謂的復合主鍵 就是指你表的主鍵含有乙個以上的字段組成 比如 create table test name varchar 19 id number,value varchar 10 primary key name,id 上面的name和id欄位組合起來就是你test表的復...

MySql 復合主鍵與聯合主鍵

復合主鍵 資料庫表的主鍵由兩個及以上的字段組成。create table asm device config info asmmodel varchar 32 not null comment 自助機型號 devicetype varchar 32 not null comment 外設型別 dev...