MYSQL_約束條件
阿新 • • 發佈:2018-12-10
約束Constraint:
對插入表中欄位的資料起到一定的條件限制。
- 約束分五種:
- 主鍵約束:primary key 要求作為主鍵的欄位的欄位值非空且唯一
- 非空約束: not null 要求:有非空約束的欄位不可以為null值。
- 唯一性約束:unique 要求有唯一性約束的欄位不可以重複,但是可以為null.
- 檢查性約束: check(條件)— check(gender in(‘f’,’m’))
要求在插入資料時必須符合欄位的檢查條件,但是可以為null
PS:在mysql中chack無效,一般使用列舉gender enum('f','m'),來代替gender varchar(1) check(gender in('f','m'))
- 外來鍵約束: foreign key 要求:有外來鍵約束的欄位A必須依賴於另外一個欄位B, 欄位B要有主鍵約束。 欄位A的值,要麼是null, 要麼必須是欄位B裡的值。
例:
empno int *primary key*,
ename varchar(20) *not null*,
idcard varchar(18) *unique*,
gender *enum('f','m')*,
mgr int *foreign key(mgr) references t_05(empno)*
序列:
作為主鍵的欄位,通常不是表中的主要資訊,可以用來當成資訊記錄的序號。序號最好是有序的序列。
auto_increment 關鍵字,用來對有主鍵約束的欄位做自增操作。
用法: create table tname( tid int primary key auto_increment, …… );
last_insert_id() 函式: 作用:獲取序列最後一次插入的值。 用法:select last_insert_id();