0

我有这样的表结构

id,f1,f2,f3,f4

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

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

估值考虑哪个关键

考虑查询

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

如上所示,它会认为 key 是 f1 吗?或 f3 或 id

如果我有这样的查询

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

那么它会考虑什么关键?

多谢你们 :)

4

1 回答 1

1

MySQL 手册中,强调我的:

如果您指定 ON DUPLICATE KEY UPDATE,并且插入的行会导致UNIQUE 索引或 PRIMARY KEY 中出现重复值,则会执行旧行的 UPDATE。

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

通常,您应该尽量避免对具有多个唯一索引的表使用 ON DUPLICATE KEY UPDATE 子句。

于 2013-04-08T22:06:54.203 回答