我想在预先存在的表中添加一个新的自动增量列。但是,我需要该列中的ID以特定值开始,即
alter table MyTable
add column MyColumn int unsigned not null primary key auto_increment=999999;
这可能吗?我试着发出:
alter table MyTable auto_increment=999999;
在我添加列之前,但它没有任何效果。因为添加列会自动生成id,所以在第一个语句之后运行第二个语句是不够的。
答案 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 |
+-------+---------+