mysql表

7jmck4yq  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(301)

我有一个如下的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) ,它会抛出一个键错误吗?或者通过考虑unique key约束,是否允许插入条目并使表如下所示?

-------------------------------------
| field1 | field2 | field3 | field4 |
|------------------------------------
|   a    |   b    |    c   |    d   |
-------------------------------------
|   a    |   b    |   cc   |    d   |
-------------------------------------
bwitn5fc

bwitn5fc1#

如果违反任何一个唯一键约束(主键算作唯一键约束),它将经历重复记录错误。所以,如果 (field1, field2) 或者 (field3) 如果重复,就会出现错误。
因此,示例数据将违反约束,插入第二行将生成错误,因为 (field1, field2) 是重复的。

相关问题