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的作用了。
