mysql表的聯合主鍵

mysql表的聯合主鍵是由表的多列字段值的拼接成的主鍵,來形成唯一性。和以往單個列的普通主鍵如id(自增長)的區別一個字段主鍵和多個字段的區別。

        如果一個表有id,name,sex三個字段,那普通主鍵表的主鍵爲id值區分唯一性。聯合主鍵爲id+name值來區別唯一性,或id+name+sex拼接的值來區分唯一性。

        聯合主鍵的設置:

            1.新建表的設置


create table test(
    id int(10) not null auto_increment,
    name varchar(20) not null,
    sex int(1) not null,
    primary key (id,name,sex)
);

 

        2.已有表修改爲複合主鍵

alter table 表名 add primary key (字段1,字段2,字段3);

 *如果執行上面操作提示表不能有多個主鍵錯誤時,需要先清理主鍵約束,再執行添加。


alter table 表名 DROP PRIMARY KEY add primary key (字段1,字段2,字段3);

        3.適用場景舉例

            如在一個商城的訂單表中訂單流水編號時唯一的,當同單個人購買多個不同物品時就需要用到聯合主鍵(id+name+訂單id)了。

        複合主鍵的:

            複合主鍵與聯合主鍵的設置基本一樣,共同點在於都是通過多個字段確定主鍵,區別是聯合主鍵通過如id+name+sex等字段確定主鍵,並且自增id有和其他表有id關聯;複合主鍵不需要自增id,即如name+sex字段確定唯一形成主鍵,一般在數據上報等情況數據不能重複數據時使用。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章