Steste2020:
私は2つのテーブル内のデータをクリーンアップする必要があります。これらは私のテーブルです。
表1
id | name | visible
48871 | John | 0
9711015| Luke | 1
547574 | Mike | 0
表2
id | parent_id | visible
1 | 48871 | 0
2 | 9711015 | 1
3 | 547574 | 0
私はますますID(最初のテーブル)とPARENT_ID(第2テーブル)のIDを更新したいと思います。だから私はこのような2つのテーブルを変換したいと思います:
表1
id | name | visible
1 | John | 0
2 | Luke | 1
3 | Mike | 0
表2
id | parent_id | visible
1 | 1 | 0
2 | 2 | 1
3 | 3 | 0
それが可能だ?私は何を使うべきでしょうか?
ゴードン・リノフ:
MySQLは、同時に更新複数のテーブルをアップすることができます。だから、あなたが行うことができます。
update table1 t1 join
(select t1.*,
row_number() over (order by t1.id) as new_id
from table1 t1
) tt1
on t1.id = tt1.id left join
table2 t2
on t2.parent_id = t1.id
set t1.id = tt1.new_id,
t2.parent_id = tt1.new_id;