2012-09-19 35 views
0

我有一個MySQL數據庫,其中包含給定的內容。我需要爲每個表創建一個名爲'muid'(遷移唯一標識)的新列,並且需要使用以下格式填充每行唯一標識:table_name_ + row_number。將列添加到包含表名+增量的現有MySQL表中

因此,用戶表的行將是「user_0」,「user_1」,「user_2」。

我目前正在用PHP做這件事 - 但這需要很多很多時間。這可以用MySQL來完成嗎?

+0

爲什麼你需要在ID表名?您可以添加新的'id'列,使其成爲主要和auto_increment;值將是1,2,3,4,5 .... – Devart

+0

這是一個很長的故事 - 但爲了簡化它,我收到了一個準備好的數據庫以遷移到Drupal。而Drupal的Migrate模塊不處理沒有唯一標識符的項目。所以,我正在尋找一種方法將獨特的ID自己添加到給定的表格中。 –

回答

1

我懷疑有許多的方法來解決這個更新每個記錄。我的辦法是做這樣的事情:

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


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

在我的測試,這導致具有類似於mytable_1,mytable_2值MUID列等

+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

相關問題