Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 当“自动增量”得到一个副本时会发生什么情况?_Sql - Fatal编程技术网

Sql 当“自动增量”得到一个副本时会发生什么情况?

Sql 当“自动增量”得到一个副本时会发生什么情况?,sql,Sql,我的主键自动递增已达到其最大值(假设为5),但我有未使用的数字(由于删除)(假设为1和3)。如果我使用以下代码重置自动增量: ALTER TABLE table_name AUTO_INCREMENT = 1 如果我现在插入两个新行,会发生什么?它会跳过2并插入为3吗? 或者它会产生错误吗?自动增量将逐行递增,因此它不会跳过2,并将2和3分别赋给两行,它将生成错误 它不会跳过值2,它将尝试插入此Id 。。。但如果有一个密钥约束来禁止重复Id,那么它将抛出一个密钥冲突错误 如果存在标识属性,则需

我的主键自动递增已达到其最大值(假设为5),但我有未使用的数字(由于删除)(假设为1和3)。如果我使用以下代码重置自动增量:

ALTER TABLE table_name AUTO_INCREMENT = 1
如果我现在插入两个新行,会发生什么?它会跳过2并插入为3吗?
或者它会产生错误吗?

自动增量将逐行递增,因此它不会跳过2,并将2和3分别赋给两行,它将生成错误

它不会跳过值2,它将尝试插入此Id

。。。但如果有一个密钥约束来禁止重复Id,那么它将抛出一个密钥冲突错误


如果存在标识属性,则需要删除该属性,并创建自己的逻辑来决定要插入的编号,然后将该编号作为默认值应用

验证RDMS的行为需要几分钟时间您使用的是哪种产品?“SQL”只是一种查询语言,而不是特定数据库产品的名称(并且
auto_increment
是非标准SQL)。请为您正在使用的数据库产品添加一个链接-大概是MySQL?