- 為防止不符合規範的資料存入資料庫,在使用者對資料進行插入、修改、刪除等操作時,MySQL提供了一種機制來檢查資料庫中的資料是否滿足規定的條件,以保證資料庫中資料的準確性和一致性,這種機制就是完整性約束。
MySQL中主要支援以下幾種種完整性約束,如表所示。 其中Check約束是MySQL8中提供的支援。
約束條件 | 約束描述 |
---|---|
PRIMARY KEY | 主鍵約束,約束欄位的值可唯一地標識對應的記錄 |
NOT NULL | 非空約束,約束欄位的值不能為空 |
UNIQUE | 唯一約束,約束欄位的值是唯一的 |
CHECK | 檢查約束,限制某個欄位的取值範圍 |
AUTO_INCREMENT | 自動增加約束,約束欄位的值自動遞增 |
FOREIGN KEY | 外來鍵約束,約束表與表之間的關係 |
總結
- 主鍵 = 不能為空 + 唯一 ,主鍵的作用:可以透過主鍵查到唯一的一條記錄, 如果主鍵是整數型別,那麼需要自增。
- 如果主鍵沒有設定值,或者用null.default都可以完成主鍵自增的效果。
- 如果sql報錯,可能主鍵就浪費了,後續插入的主鍵是不連號的。