我有一个像这样的表结构
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