mysql添加一个带有起始值的autoincrement列

时间:2014-03-25 21:43:53

标签: mysql auto-increment

我想在预先存在的表中添加一个新的自动增量列。但是,我需要该列中的ID以特定值开始,即

alter table MyTable 
add column MyColumn int unsigned not null primary key auto_increment=999999;

这可能吗?我试着发出:

alter table MyTable auto_increment=999999;

在我添加列之前,但它没有任何效果。因为添加列会自动生成id,所以在第一个语句之后运行第二个语句是不够的。

1 个答案:

答案 0 :(得分:3)

不,它可以添加一个具有起始位置的AI列。但你几乎得到了正确的语法。这是一个演示:

mysql> CREATE TABLE foo (v varchar(10));

mysql> INSERT INTO foo VALUES ('one'), ('two'), ('three');

然后是棘手的语法。您必须将列声明为AUTO_INCREMENT,但还要为AUTO_INCREMENT起始值指定表选项。你需要一个逗号来将ADD COLUMN与表格选项分开。

mysql> ALTER TABLE foo ADD COLUMN id INT AUTO_INCREMENT PRIMARY KEY,
    AUTO_INCREMENT=999999;

mysql> select * from foo;
+-------+---------+
| v     | id      |
+-------+---------+
| one   |  999999 |
| two   | 1000000 |
| three | 1000001 |
+-------+---------+