mysql序列号重置,当我们更改小于当前序列号的AUTO_INCREMENT值时,MySQL将返回什么?...

当我们在MySQL列上使用AUTO_INCREMENT时,序列号总是从默认值1或我们指定的值开始以升序递增。

因此,MySQL不允许将AUTO_INCREMENT值更改为小于当前序列号的值。通过以下示例可以理解-

示例

在此示例中,假设我们有一个名为“ emp1”的表,并在创建表时将AUTO_INCREMENT VALUE指定为100。因此,在表中插入值之后,该序列将从100开始,如以下查询的输出所示-mysql> Select * from emp1;

+-----+---------+

| id | NAME     |

+-----+---------+

| 100 | Sohan   |

| 101 | Harshit |

+-----+---------+

2 rows in set (0.00 sec)

现在,当我们尝试通过ALTER TABLE查询将AUTO_INCREMENT值更改为90时,MySQL不会返回错误和警告,因为查询还可以,但是当我们在表中插入新值时,MySQL会将指定的AUTO_INCREMENT值与当前序列号进行比较。由于指定的AUTO_INCREMENT值(90)小于当前序列号(101),MySQL开始从102开始累积新值,可以从以下查询中观察到-mysql> ALTER TABLE EMP1 AUTO_INCREMENT = 90;

Records: 2 Duplicates: 0 Warnings: 0

mysql> Insert into emp1(name) values('Aryan');

mysql> Select * from emp1;

+-----+---------+

| id  | NAME    |

+-----+---------+

| 100 | Sohan   |

| 101 | Harshit |

| 102 | Aryan   |

+-----+---------+

3 rows in set (0.00 sec)

相反,如果我们尝试将AUTO_INCREMENT更改为高于当前序列号的值,则MySQL将开始从指定值开始累积新值。

为了在表'emp1'中更加清楚,我们将AUTO_INCREMENT值更改为108,高于当前序列号,因此MySQL从指定的AUTO_INCREMENT值(即从108开始)开始累积新插入的值。mysql> ALTER TABLE EMP1 AUTO_INCREMENT = 108;

Records: 3 Duplicates: 0 Warnings: 0

mysql> Insert into emp1(name) values('Daksh');

mysql> Insert into emp1(name) values('Yashraj');

mysql> Select * from emp1;

+-----+---------+

| id  | NAME    |

+-----+---------+

| 100 | Sohan   |

| 101 | Harshit |

| 102 | Aryan   |

| 108 | Daksh   |

| 109 | Yashraj |

+-----+---------+

5 rows in set (0.00 sec)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值