猿问

更改自动增量起始编号?

在MySQL中,我有一个表,我想将auto_increment值设置为5而不是 1。这是可能的,这是什么查询语句?



智慧大石
浏览 551回答 3
3回答

ibeautiful

您可以使用ALTER TABLE更改auto_increment初始值:ALTER TABLE tbl AUTO_INCREMENT = 5;有关更多详细信息,请参阅MySQL参考。

四季花海

是的,您可以使用该ALTER TABLE t AUTO_INCREMENT = 42声明。但是,您需要注意这将导致重建整个表,至少使用InnoDB和某些MySQL版本。如果您已有一个包含数百万行的数据集,则可能需要很长时间才能完成。根据我的经验,最好做以下事情:BEGIN WORK;-- You may also need to add other mandatory columns and valuesINSERT INTO t (id) VALUES (42);ROLLBACK;这样,即使您回滚事务,MySQL也会保留自动增量值,并且会立即应用更改。您可以通过发出SHOW CREATE TABLE t声明来验证这一点。你应该看到:> SHOW CREATE TABLE t \G*************************** 1. row ***************************       Table: tCreate Table: CREATE TABLE `t` (...) ENGINE=InnoDB AUTO_INCREMENT=43 ...

ITMISS

如何在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 foobarcreate 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开始。
随时随地看视频慕课网APP

相关分类

MySQL
我要回答