我从另一个开发人员那里获得了一个数据库。他没有在任何桌子上使用auto_incrementers。它们都有主键ID,但他在代码中手动完成了所有的递增。
我现在可以把它们转换成Auto_incrementers了吗?
哇,非常好,非常感谢。它在我的一张桌子上工作得很顺利。但是第二个表,我在将'.\DBNAME#sql-6c8_62259c‘重命名为'.\DBNAME\dealer_master_events’时得到这个error...Error
发布于 2008-10-30 20:11:19
我猜你不需要重新增加已有的数据,为什么你不能运行一个简单的ALTER TABLE命令来改变主键的属性呢?
类似于:
ALTER TABLE `content` CHANGE `id` `id` SMALLINT( 5 ) UNSIGNED NOT NULL AUTO_INCREMENT
我已经在我自己的MySQL数据库上测试了这段代码,它可以工作,但我没有用任何有意义的记录数量来尝试它。一旦更改了行,则需要将增量重置为一个保证不会干扰任何其他记录的数字。
ALTER TABLE `content` auto_increment = MAX(`id`) + 1
再一次,未经测试,但我相信它会工作。
发布于 2010-01-13 03:31:34
上面的方法都不适用于我的表格。我有一个表,它的主键是一个无符号整数,值的范围从0到31543。目前有超过19,000条记录。我必须将列修改为AUTO_INCREMENT
(MODIFY COLUMN
'id'INTEGER UNSIGNED NOT NULL AUTO_INCREMENT
),并在同一条语句中设置种子(AUTO_INCREMENT = 31544
)。
ALTER TABLE `'TableName'` MODIFY COLUMN `'id'` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT = 31544;
发布于 2014-02-22 05:34:00
这对我很有效(我想把id设为主值并设置自动递增)
ALTER TABLE table_name
CHANGE id
id
INT PRIMARY KEY AUTO_INCREMENT;
https://stackoverflow.com/questions/251479
复制相似问题