Mysql 将列添加到包含表名+;增量

Mysql 将列添加到包含表名+;增量,mysql,Mysql,我有一个包含给定内容的MySQL数据库。我需要为每个表创建一个名为“muid”(迁移唯一id)的新列,并需要用以下格式的唯一id填充每一行:table\u name\u+row\u number 因此,用户表的行将是“user\u 0”、“user\u 1”、“user\u 2” 我目前正在用PHP做这件事,但这需要很多很多时间。使用MySQL可以做到这一点吗?使用以下方法创建新列 DECLARE @Table AS VARCHAR(200) SET @Table ='Test' EXEC ('

我有一个包含给定内容的MySQL数据库。我需要为每个表创建一个名为“muid”(迁移唯一id)的新列,并需要用以下格式的唯一id填充每一行:table\u name\u+row\u number

因此,用户表的行将是“user\u 0”、“user\u 1”、“user\u 2”


我目前正在用PHP做这件事,但这需要很多很多时间。使用MySQL可以做到这一点吗?

使用以下方法创建新列

DECLARE @Table AS VARCHAR(200)
SET @Table ='Test'
EXEC ('ALTER TABLE ' + @Table + ' ADD muid VARCHAR(50)')
之后,使用游标更新每个记录


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

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等值。

为什么在ID中需要表名?您可以添加新的
id
列,使其成为主列并自动递增;值将是1、2、3、4、5……这是一个很长的故事——但简而言之,我收到了一个准备好迁移到Drupal的数据库。Drupal的迁移模块不能很好地处理没有唯一id的项目。因此,我正在寻找一种方法,将唯一id添加到给定的表中。这是一个没有光标的意外解决方案!非常感谢。