mysql 多個字段確定唯一性 聯合唯一索引

2022-05-07 23:36:14 字數 480 閱讀 2214

一、聯合唯一索引

專案中需要用到聯合唯一索引:

例如:有以下需求:每個人每一天只有可能產生一條記錄:處了程式約定之外,資料庫本身也可以設定:

例如:t_aa 表中有aa,bb兩個字段,如果不希望有2條一模一樣的記錄(即:aa欄位的值可以重複; bb欄位的值也可以重複,但是一條記錄(aa,bb)組合值不允許重複),需要給 t_aa 表新增多個欄位的聯合唯一索引:

alter table t_aa add unique index(aa,bb);
效果:

注意mysql 5.7 版本不支援使用

alter table ignore...語法

所以我這裡採用的辦法是,先用sql刪除重複資料,再新增聯合索引

參考文件:

oracle的聯合約束(多個欄位的唯一性)

使用oracle資料庫建表的時候,涉及到刪除往往是邏輯刪除,一般的做法就是將某條記錄的active欄位設定為 n 這也就是所謂的邏輯刪除。如員工表,員工工號 code 一般是唯一的,但是員工職位可以變化,那麼就會出現多條記錄,但是只會有一條記錄的active為 y 其餘的都為 n 這樣就不能在cod...

oracle的聯合約束(多個欄位的唯一性)

乙個表中 2個字段的聯合約束 建立資料表 create table zcz id number not null,name varchar 20 null,age varchar 20 null 建立主鍵 或者聯合主鍵 但乙個表中只能有乙個主鍵 alter table zcz add constra...

oracle的聯合約束(多個欄位的唯一性)

乙個表中 2個字段的聯合約束 建立資料表 create table zcz id number not null,name varchar 20 null,age varchar 20 null 建立主鍵 或者聯合主鍵 但乙個表中只能有乙個主鍵 alter table zcz add constra...