为了账号安全,请及时绑定邮箱和手机立即绑定

更改自动增量起始编号?

更改自动增量起始编号?

智慧大石 2019-08-30 15:43:39
在MySQL中,我有一个表,我想将auto_increment值设置为5而不是 1。这是可能的,这是什么查询语句?
查看完整描述

3 回答

?
ibeautiful

TA贡献1993条经验 获得超5个赞

您可以使用ALTER TABLE更改auto_increment初始值:


ALTER TABLE tbl AUTO_INCREMENT = 5;

有关更多详细信息,请参阅MySQL参考。


查看完整回答
反对 回复 2019-08-30
?
四季花海

TA贡献1811条经验 获得超5个赞

是的,您可以使用该ALTER TABLE t AUTO_INCREMENT = 42声明。但是,您需要注意这将导致重建整个表,至少使用InnoDB和某些MySQL版本。如果您已有一个包含数百万行的数据集,则可能需要很长时间才能完成。


根据我的经验,最好做以下事情:


BEGIN WORK;

-- You may also need to add other mandatory columns and values

INSERT INTO t (id) VALUES (42);

ROLLBACK;

这样,即使您回滚事务,MySQL也会保留自动增量值,并且会立即应用更改。


您可以通过发出SHOW CREATE TABLE t声明来验证这一点。你应该看到:


> SHOW CREATE TABLE t \G

*************************** 1. row ***************************

       Table: t

Create Table: CREATE TABLE `t` (

...

) ENGINE=InnoDB AUTO_INCREMENT=43 ...


查看完整回答
反对 回复 2019-08-30
?
ITMISS

TA贡献1871条经验 获得超8个赞

如何在MySQL中从10开始自动递增1:

create table foobar(

  id             INT PRIMARY KEY AUTO_INCREMENT,

  moobar         VARCHAR(500)

); 

ALTER TABLE foobar AUTO_INCREMENT=10;


INSERT INTO foobar(moobar) values ("abc");

INSERT INTO foobar(moobar) values ("def");

INSERT INTO foobar(moobar) values ("xyz");


select * from foobar;


'10', 'abc'

'11', 'def'

'12', 'xyz'

此自动将id列从10开始递增1。


MySQL中的自动增量为5,从10开始:

drop table foobar

create table foobar(

  id             INT PRIMARY KEY AUTO_INCREMENT,

  moobar         VARCHAR(500)

); 

SET @@auto_increment_increment=5;

ALTER TABLE foobar AUTO_INCREMENT=10;


INSERT INTO foobar(moobar) values ("abc");

INSERT INTO foobar(moobar) values ("def");

INSERT INTO foobar(moobar) values ("xyz");


select * from foobar;

'11', 'abc'

'16', 'def'

'21', 'xyz'

此自动每次将id列增加5,从10开始。


查看完整回答
反对 回复 2019-08-30
  • 3 回答
  • 0 关注
  • 550 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信