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)。
這是一個錯誤?