需求:需要用mallid、keyword、batchid三個欄位來組成唯一鍵,防止三個引數完全相同的資料插入資料庫;但是有一種情況,keyword和batchid欄位不會同時存在,總有乙個欄位為空。
錯誤建表語句如下:
) engine=innodb auto_increment=344 default charset=utf8 comment='遮蔽券資訊';
經測試,效果達不到目的,原因如下:
這種情況下必須保持三個欄位都存在,不能有任何乙個欄位空著,如果batchid這個欄位為空,那麼就會存在相同的mallid、keyword資料存在,導致重複資料的產生。
正確建表語句如下:
unique key `unique2` (`mallid`,`batchid`)
) engine=innodb auto_increment=344 default charset=utf8 comment='遮蔽券資訊';
Mysql 唯一鍵約束
3 唯一鍵約束也是分為兩種 4 刪除唯一鍵約束 乙個表中可以有多個唯一鍵約束 唯一鍵約束意味著,唯一,可以為null 唯一鍵的約束名可以自己指定,也可以預設 建立唯一鍵約束,也會在對應列上建立索引。而且刪除唯一鍵約束的方式是通過刪除對應索引來實現的。create table 資料庫名.表名 欄位名1...
mysql 唯一鍵 MySQL資料庫8(十)唯一鍵
唯一鍵 唯一鍵 unique key,用來保證對應的字段中的資料唯一的。主鍵也可以用保證字段資料唯一性,但是一張表只有乙個主鍵。唯一鍵特點 1 唯一鍵在一張表中可以有多個。2 唯一鍵允許字段資料為null,null可以有多個 null不參與比較 建立唯一鍵 建立唯一鍵和建立主鍵非常類似 1 直接在表...
資料庫 加索引唯一鍵 跟唯一鍵的差別
唯一鍵鍵約束和唯一索引功能是一樣的 唯一性 索引 唯一鍵鍵約束 只是作為一種獨特的約束 如主鍵約束,唯一鍵約束,check約束,外來鍵約束 的一種 以約束的形式管理.但是同時又自動建立了唯一非聚集索引,也就有了索引的效能和部分功能.實際上唯一鍵約束是用唯一索引來約束的。唯一索引 就是一種索引,它對某...