1
我有以下表定义:MySQL在重复键更新插入 - 独特
create table mytable(
a int,
b int,
c int,
primary key (a, b),
unique (b, c)
);
insert into mytable values (1,2,3);
select * from mytable;
+---+---+------+
| a | b | c |
+---+---+------+
| 1 | 2 | 3 |
+---+---+------+
下面的语句有一个令人惊讶的结果:
mysql> insert into mytable (a, b, c) values (2, 2, 3) on duplicate key update a = 2, b = 2, c = 3;
Query OK, 2 rows affected (0.00 sec)
mysql> select * from mytable;
+---+---+------+
| a | b | c |
+---+---+------+
| 2 | 2 | 3 |
+---+---+------+
1 row in set (0.00 sec)
我期待插入/更新失败的原因以独特的约束。当我正在处理主键(2,2)时,我当然不希望删除带主键的记录(1,2)。
这是一个错误?