将auto_increment唯一ID添加到我的sql中?

时间:2013-08-18 16:32:41

标签: mysql alter

我已经在MySQL中创建了表格,并希望在表格中添加一列,即'myid',即'mytable'。

已定义主键

我使用follwing查询添加自动增量:

ALTER TABLE mytable ADD myid INT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE;

但我希望自动增量应该从30而不是1开始。

需要对查询进行哪些修改?还有其他方法可以添加吗?

其次,如果我使用以下程序,

首先我运行查询:ALTER TABLE mytable AUTO_INCREMENT = 30;

然后运行ALTER TABLE mytable ADD myid INT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE;

会没事吗?是或否?

1 个答案:

答案 0 :(得分:1)

如果你的表是空的或非常小,那么首先添加AUTO_INCREMENT列,然后像这样设置它的起始值:

myid设为AUTO_INCREMENT列:

ALTER TABLE `mytable` ADD `myid` INT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE;

将其起始值设为30     ALTER TABLE mytable AUTO_INCREMENT = 30;

买者

如果mytable中有大量记录,则使用

ALTER TABLE mytable AUTO_INCREMENT = 30;

MySQL服务器将创建一个新表,将旧表中的所有数据复制到新表,删除旧表,然后重命名新表,即使表没有结构更改。服务器响应将显示所有行都是affected,如下所示:

的MySQL> alter table mytable auto_increment = 30; 查询OK,受影响的行数为609481(1分4.55秒) 记录:609481重复:0警告:0

表格副本可能会出现潜在问题,例如第二份数据副本的可用磁盘空间不足。

Trick你可以用来插入一个虚拟行并显式设置AUTO_INCREMENT列为29,然后立即删除虚拟行。插入的下一行将从30开始,值将从那里开始。