0

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

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

我目前正在使用 PHP 执行此操作 - 但这需要很多时间。这完全可以用 MySQL 完成吗?

4

2 回答 2

1

使用以下创建新列

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

之后,使用游标更新每条记录

如何使用游标更新记录

于 2012-09-19T12:04:22.007 回答
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 等值。

于 2012-09-19T12:07:44.033 回答