头疼怎么把问题删了?
一个表有多个唯一索引, 是不能使用on duplicate key update
的. 按照常识去思考, 我到底得按照哪个唯一索引来决定更新数据.
主键
= 唯一索引
+ 非空约束
唯一索引
可以为空(只能有一个空元素)
所以主键
也是唯一索引
.
你的原始问题是, on duplicate key update
之后, 表的种子值修改了. 但是我试过, 根本不存在你这个问题, MySQL 5.5. 代码参见我的评论. 懒得贴了.
而唯一可能出现你那种问题, 就是没有执行update, 而是执行了insert语句. 这种情况, 只在一个表里面有多个唯一索引的情况下出现.
如果一个表有多个唯一索引, 是只能使用update语句的.
PS: 你一直在强调我没用过这个东西, 也不贴可以重现的代码.