3 回答

TA貢獻1993條經驗 獲得超6個贊
您可以使用ALTER TABLE更改auto_increment初始值:
ALTER TABLE tbl AUTO_INCREMENT = 5;
有關更多詳細信息,請參閱MySQL參考。

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 ...

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開始。
添加回答
舉報