【发布时间】:2018-06-12 14:04:54
【问题描述】:
我了解在 MySQL 中使用 INSERT ... ON DUPLICATE KEY UPDATE 时,插入失败时会出现自动增量间隙。但是 - 我注意到只有在违反唯一键约束时才会出现差距。如果主键约束失败,则不会出现自增间隙。
两者的区别是什么原因?
谢谢!
【问题讨论】:
-
这就是它的工作方式。
-
可能是因为主键必须是自增列,所以特殊处理。
-
自增字段是主键吗?还是它是主键的一部分,而您将其值指定为插入的一部分?
-
自增字段为主键
-
@KyleChadha Shadow 的回答很明确,
primary key constraint fails表示用户定义了 PK,因此 mysql 不会为 PK(自增列)生成新值,但unique key constraint is violated会。
标签: mysql auto-increment on-duplicate-key