我已经在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;
会没事吗?是或否?
答案 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开始,值将从那里开始。