从INSERT的手册页中引用:
如果使用IGNORE关键字,则在执行INSERT语句时发生的错误将被视为警告。例如,如果没有IGNORE,则复制表中现有UNIQUE索引或PRIMARY
KEY值的行将导致重复键错误,并且该语句将中止。使用IGNORE,仍不会插入该行,但是不会发出错误。
该
INSERTIGNORE语法只是为了抑制某些错误消息的方式,当你意识到这些错误可能发生和/或希望在以后的阶段来处理他们这是有帮助的。在幕后,您仍然有一个常规的插入内容,只是由于密钥被破坏而导致插入失败。MySQL需要实际的行值进行插入,并且AUTO_INCREMENT计数器将根据常规规则递增:
- 该列的值为NULL。
- 未设置该列的值。
- 该列的值大于计数器。
因此,除非您可以重新考虑逻辑(例如,在进行插入之前测试键值是否存在),否则 重置 计数器的唯一方法是ALTER
TABLE:
ALTER TABLE t2 AUTO_INCREMENT = value;



