mysql设置自动递增_《MySQL数据库》约束条件和自增长序列
一、約束(constraint)
約束就是在表上強制執(zhí)行的一種校驗規(guī)則,當執(zhí)行DML操作時,數據必須符合這些規(guī)則,如果不符合,將無法執(zhí)行。
約束的全稱:約束條件,也稱之為完整性約束條件。可以保證表中數據的完整性,保證數據之間的商業(yè)邏輯。
約束條件包括:
1)非空約束 (not null),簡稱NN 2)唯一性約束(unique),簡稱UK 3)主鍵約束(primary),簡稱PK 4)外鍵約束(foreign key),簡稱FK 5)檢查約束(check),簡稱CK1、非空約束 (not null)
非空約束用于確保字段值不為null。默認情況下任何列都允許null值,但是業(yè)務邏輯可以會要求某些列不能去null值,因此使用非空約束。
建表時設置:
create建表后設置非空約束(ps:前提表中相應字段不能有null值)
alter取消非空約束
alter2、唯一性約束(unique)
用于保證字段或者字段的組合不出現重復值,但是允許為null值
建表時設置
create建表后設置
alter查看表中的唯一性約束名稱
show刪除唯一性約束
drop3、主鍵約束(primary)
主鍵約束在功能上講,相當于非空約束和唯一性約束的組合。主鍵字段可以是單字段也可以是字段組合,即在主鍵約束下的字段不允許有null值,也不允許出現重復值。主鍵可以用來在表中唯一的確定一行記錄。一個表中只允許建立一個主鍵,其他約束條件沒有個數限制。
主鍵選取的原則
1)主鍵應是對系統(tǒng)無意義的數據,如序號 2)永遠也不要更新主鍵,讓主鍵除了用于唯一標識一行記錄之外,再無其他用途 3)主鍵不應包含動態(tài)變化的數據,如時間戳 4)主鍵應自動生成,不要人為干預,以免使它帶有除了唯一標識一行以外的意義 5)主鍵盡量建立在單列上建表時創(chuàng)建
create建表后創(chuàng)建
alter table tableName modify colName Type primary key; alter table tableName add constraint constraintName primary key(colName);刪除主鍵
alter table tableName drop primary key;4、外鍵約束(foreign key)
外鍵約束條件定義在兩張表的字段或一張表的兩個字段上,用于保證相關兩個字段的關系。即字段A如果設置外鍵約束,那么字段A的值
必須要依賴于字段B里已經存在的值,但是可以為null。而字段B要求是表中的主鍵約束。
字段A所在的表我們稱之為從表,字段B所在的表稱之為主表。如果主表中的一個值被從表依賴時,此時主表的該記錄不允許被刪除。
外鍵約束會降低數據庫的性能:
如果在設置外鍵約束的表上頻繁的進行建表時設置
create建表后設置
alter刪除外鍵約束
alter5、檢查約束(check)
檢查約束條件用來強制在字段上的每個值都要滿足檢查約束的條件。
mysql的檢查約束注意事項:
1) 寫法:check(條件) 。mysql在語法上通過,但是在約束條件上沒有效果。其他數據庫如oracle有效 2) 如果是集合性質的條件,如 gender 必須('f','m')中的某一個值,可以使用枚舉來替代檢查約束寫法:enum('f','m')建表時設置:
create建表后設置:
alter二、mysql的自增長"序列"
1、序列的概念
序列(sequence)是一種用來生成唯一數字值的數據庫對象。序列的值通常是按遞增或遞減順序自動生成,用于自動產生表中主鍵的值,是一種高效的獲取唯一鍵值的途徑。通常為主鍵服務,是一組有序的整數值,如1,2,3,4,5,.......................
2.mysql特點
mysql不支持序列機制,但是mysql的auto_increment可以達到與序列機制一樣的效果。我們稱之為自增長序列。
1用法如下:
建表時設置3、函數:last_insert_id();
作用:獲取序列最后一次的值。總結
以上是生活随笔為你收集整理的mysql设置自动递增_《MySQL数据库》约束条件和自增长序列的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: windows怎么打印黑白图片
- 下一篇: java中l什么是ock接口