官网上关于REPLACE语句的说明:如果表中的一个旧记录与一个用于PRIMARY KEY或一个UNIQUE索引的新记录具有相同的值,则在新记录被插入之前,旧记录被删除。
现在我是用replace来更新原有记录或在原有记录不存在重复的时候,再插入新的记录。
但现在的问题是:
1.能不能自行指定使用哪一个索引来作为新旧记录的判断?如果不能,那么PRIMARY KEY和UNIQUE索引的优先级是怎样?默认优先采用PRIMARY KEY?
2.现在我有一个用来排序的序号列“NO”(姑且称为A,带AUTO_INCREMENT属性)作为主键,还有一个可以用来做索引的列“INDEX”(称为B)。我不知道MySql引擎是使用哪一个来进行REPLACE语句的判断了,好像是A。假设现在我有10条记录,我明明是更新一些重复的记录,但它却让主键A从11开始重新把这些信息排序了,即11-20。这不是我希望的~~