Mysql SQL自动增量行为

Mysql SQL自动增量行为,mysql,sql,database,auto-increment,Mysql,Sql,Database,Auto Increment,我的第一个问题是: 我可以手动将ID输入表格的自动增量列吗? 例如:我有10条ID为1到10的记录。我可以手动输入ID为3的11条记录吗(是的,它是重复的!) 我的第二个问题是: 我假设可以手动输入ID号,如果我有9条ID为1-9的记录,而我的第10条记录的ID为11会怎么样。“自动增量”是要跳过它到12,还是要再加11 我知道我表达得不太好,但我很困惑,希望有人能帮助我 不,你不能。自动增量列不能包含重复项,通常用作主键。只要有索引,就可以有一个非PK auto_increment列。

我的第一个问题是:

  • 我可以手动将ID输入表格的自动增量列吗? 例如:我有10条ID为1到10的记录。我可以手动输入ID为3的11条记录吗(是的,它是重复的!)
我的第二个问题是:

  • 我假设可以手动输入ID号,如果我有9条ID为1-9的记录,而我的第10条记录的ID为11会怎么样。“自动增量”是要跳过它到12,还是要再加11
我知道我表达得不太好,但我很困惑,希望有人能帮助我

  • 不,你不能。自动增量列不能包含重复项,通常用作主键。只要有索引,就可以有一个非PK auto_increment列。每个表只能有一个自动增量列
  • 是的,可以在自动增量字段中手动插入值。它将从最大值+1开始。因此,在序列中会有一个间隙
  • 这里是演示


    进一步阅读

    注意:从技术上讲,自动增量不需要是PK(这个答案应该是);尽管它通常用于代理PK目的,并且与物理布局配合得很好,但所有键列/元组必须唯一标识一个列,并且不能包含重复项。@user2246674。在更新的答案中特别提到了这一点。