[英]Mysql table with both primary and unique key constraint
我有一個如下的mysql表,
CREATE TABLE IF NOT EXISTS `sometable` (
`field1` varchar(36) NOT NULL,
`field2` varchar(36) NOT NULL,
`field3` varchar(36) NOT NULL,
`field4` varchar(36) NOT NULL,
PRIMARY KEY (`field1`, `field2`)
UNIQUE KEY `field3` (`field3`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
在什么情況下,該表中的記錄將被視為重復記錄? 假設,我的表中有以下記錄。
-------------------------------------
| field1 | field2 | field3 | field4 |
|------------------------------------
| a | b | c | d |
-------------------------------------
現在,如果我插入(field1,field2,field3,field4) values (a, b, cc, d)
,它將拋出重復的鍵錯誤嗎? 還是通過考慮唯一鍵約束,它是否允許插入條目並使表如下所示?
-------------------------------------
| field1 | field2 | field3 | field4 |
|------------------------------------
| a | b | c | d |
-------------------------------------
| a | b | cc | d |
-------------------------------------
如果違反任何一個唯一鍵約束(主鍵算作一個唯一鍵約束),它將經歷重復記錄錯誤。 因此,如果重復(field1, field2)
或(field3)
,您將得到一個錯誤。
因此,您的樣本數據將違反約束,並且插入第二行將產生錯誤,因為(field1, field2)
是重復的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.