我有一个可以通过PHP访问的现有MySQL数据库。大约有15,000条记录,我需要快速进入并更新刚刚添加的新Design Number
列。我需要迭代整个数据集并将第一条记录的值设置为00001,即下一个00002,并保持递增1直到我结束。我有代码来确保所有新记录都已应用,但我需要快速更新现有的15,000条记录。
有没有快速的方法在MySQL中执行此操作而不构建PHP脚本来快速填充所有旧记录?
请记住,这不是MySQL中的常规自动增量,而是在SugarCRM中模仿该功能的自定义实现
我需要迭代这个表......
SELECT designnumber_c FROM d1_designs_cstm
然后更新此designnumber_c
列,并为每条记录增加+1,同时保持00001
0
填充
答案 0 :(得分:3)
这样的事情:
mysql> SET @id := 0;
mysql> UPDATE d1_designs_cstm SET designnumber_c = LPAD(@id:=@id+1, 6, '0');
答案 1 :(得分:2)
通过Answer
在@Patrick Savalle上添加更多内容您可以将新列定义为
designnumber_c int(6) unsigned zerofill not null
用这个:
示例:
mysql> SET @id := 0;
mysql> UPDATE d1_designs_cstm
-> SET designnumber_c = @id:=@id+1;