我有一个如下所示的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 |
-------------------------------------
答案 0 :(得分:0)
如果违反了 的唯一键约束(主键计为唯一键约束),则会发生重复记录错误。因此,如果重复(field1, field2)
或(field3)
,您将收到错误。
因此,您的示例数据会违反约束,插入第二行会产生错误,因为(field1, field2)
是重复的。