PHPMyAdmin / MySql - 添加ID字段并自动填充ID编号

8

我有一个非常大的数据库表,近2000万条记录。

这些记录没有唯一的ID号码。因此,我已经插入了新字段。

现在,我想用ID号码来填充它,逐个递增,从第一个ID号码开始是10,000,001。

顺便说一下 - 我正在使用本地机器上的WAMP,并且我已经将所有最大时间调到了5000秒,并在php.ini和mysql.ini中调整了几个其他变量,以便首先进行上传(这需要超过10小时!)。

过去,或者在使用其他数据库时,我可能会将数据导出到Excel中,然后编写一些文本粘贴回phpmyadmin中更新记录。当处理5K条记录,甚至100K条记录时,这是可以接受的,但是在处理2000万条记录时似乎无法管理。

提前感谢您的帮助!!

3个回答

16

只需在SQL选项卡中依次运行这两个查询:

ALTER TABLE mytable AUTO_INCREMENT=10000001;

ALTER TABLE mytable ADD `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST;

MySQL会创建id字段并从10000001开始按顺序填充。


这就是我接电话的下场 ;D - gview
我可以期望这个程序处理2000万条记录需要多长时间?我已经粘贴了第一行代码,它已经运行了大约5分钟。我应该期望需要一个小时或更长时间来处理吗? - Kevin
1
我无法告诉你。但是这比导出/导入要快得多。 - webbiedave

0

这个在SQL Server中可行,也许你可以将其适应于MySQL:

declare @value int 
set @value=10000000

update your_table
set @value+=1,id=@value

它将更新所有ID行,从10000001开始递增1。

我希望至少能给你一些想法。


0
你所需要做的就是将该列设置为AUTO_INCREMENT,mysql会为你编号。假设你想要新列的名称为'id'。
alter table yourtable auto_increment = 10000001;
alter table yourtable add id int unsigned primary key auto_increment;

您可以在phpMyAdmin的SQL面板中输入这些命令--只需省略末尾的分号即可。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接