我有一个包含给定内容的MySQL数据库。我需要为每个表创建一个新列,称为“muid”(迁移唯一ID),我需要使用以下格式的每个行填充唯一ID:table_name_ + row_number。
因此,用户表的行将是“user_0”,“user_1”,“user_2”。
我目前正在使用PHP进行此操作 - 但这需要花费大量的时间。这可以用MySQL完成吗?
答案 0 :(得分:1)
使用以下命令创建新列
DECLARE @Table AS VARCHAR(200)
SET @Table ='Test'
EXEC ('ALTER TABLE ' + @Table + ' ADD muid VARCHAR(50)')
之后,使用光标
更新每条记录答案 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等值。