将列添加到包含表名+增量的现有MySQL表中

时间:2012-09-19 11:48:56

标签: mysql

我有一个包含给定内容的MySQL数据库。我需要为每个表创建一个新列,称为“muid”(迁移唯一ID),我需要使用以下格式的每个行填充唯一ID:table_name_ + row_number。

因此,用户表的行将是“user_0”,“user_1”,“user_2”。

我目前正在使用PHP进行此操作 - 但这需要花费大量的时间。这可以用MySQL完成吗?

2 个答案:

答案 0 :(得分:1)

使用以下命令创建新列

DECLARE @Table AS VARCHAR(200)
SET @Table ='Test'
EXEC ('ALTER TABLE ' + @Table + ' ADD muid VARCHAR(50)')

之后,使用光标

更新每条记录

How to use cursor to update record

答案 1 :(得分:1)

我怀疑有很多方法可以解决这个问题。我的方法是做这样的事情:

alter table mydb.mytable add column muid varchar(15);


set @i = 0;
update mydb.mytable set muid = concat('mytable_', (@i:=@i+1));

在我的测试中,这导致muid列具有mytable_1,mytable_2等值。