Mysql的多个唯一键与重复的键引用


mysql multiple unique keys with on duplicate key reference

我有一个像这样的表结构

id,f1,f2,f3,f4

id是主键,f1和f3是唯一键

我的问题是当我使用ON DUPLICATE KEY UPDATE

考虑哪个键进行估值

考虑查询

INSERT INTO t1 (f1,f2,f4) VALUES (.....) ON DUPLICATE KEY UPDATE f4=...."
如上面所示,它会认为键是f1吗?或者f3或者id

如果我有一个像这样的查询

INSERT INTO t1 (f1,f2,f3,f4) VALUES (.....) ON DUPLICATE KEY UPDATE f4=...."

它会考虑什么键呢?

谢谢大家:)

来自MySQL手册,重点是我的:

如果指定ON DUPLICATE KEY UPDATE,则插入一行会在UNIQUE索引或PRIMARY KEY中导致重复值,那么执行旧行更新。

插入尝试会导致表上任何唯一约束的重复,这将导致触发替代操作。注意,建议(一般情况下)不要对包含多个唯一索引的表使用ON DUPLICATE KEY语法:

一般来说,您应该尽量避免使用ON DUPLICATE KEY UPDATE