我有一个具有给定内容的 MySQL 数据库。我需要为每个表创建一个新列,称为“muid”(迁移唯一 ID),并且需要使用以下格式的唯一 ID 填充每一行:table_name_ + row_number。
因此,用户表的行将是“user_0”、“user_1”、“user_2”。
我目前正在使用 PHP 执行此操作 - 但这需要很多时间。这完全可以用 MySQL 完成吗?
我有一个具有给定内容的 MySQL 数据库。我需要为每个表创建一个新列,称为“muid”(迁移唯一 ID),并且需要使用以下格式的唯一 ID 填充每一行:table_name_ + row_number。
因此,用户表的行将是“user_0”、“user_1”、“user_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 等值。