Mysql 主鍵約束PrimaryKey


Mysql 主鍵約束Primary Key

今天來簡單的講一下主鍵約束。
假如有一張學生信息表,里面記錄了學生的學號 ,姓名,成績等,那么,會不會有兩個學號相同的學生,答案肯定是否定的,如果有的話也只能是插入信息的時候犯下的錯誤,那么我們如何去避免這種錯誤呢,這時候,primary key就發揮作用了。

下面我們創建一個stu_inform 表

create table stu_inform(
    id int,
    name varchar(20),
    grade double,
    primary key(id)
);

這樣的話我們就為id 加上了主鍵約束,我們來插入一個錯誤的信息

insert into stu_inform values(1,'張三',100.00),(1,'李四',100.00); -- Error

如果是這樣插入的話環境會報出一個錯誤,這個錯誤正是主鍵約束的作用。

但是如果你也想讓姓名也不能相同,你可能會這樣寫

create table stu_inform(
    id int,
    name varchar(20),
    grade double,
    primary key(id,name)
);

接下來我們插入一個數據

insert into stu_inform values(1,'張三',100.00),(1,'李四',100.00);

你會發現這條語句是完全可行的,是完全沒有錯誤的,這是為什么呢,這是因為這是一個聯合主鍵,它的作用是id不能重復 且 姓名也不能重復,注意是且。

你如果這樣寫的話

insert into stu_inform values(1,'張三',100.00),(1,'張三',100.00);//Error

你如果這樣寫的話就是大錯特錯了,因為這違反了聯合主鍵。因為id和姓名同時相同了就是這個道理。

那么要怎樣才能實現id不能相同,同時姓名也不能相同呢,這就是下一篇要講的unique的作用了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM