1

良い一日、

現在、バックエンドとして posgresql を使用しており、テーブル フィールドに大きな変更を加える必要があります。2つのテーブルを使用します。

Table 1         Table 2

Old Index       New Index
Product Id      Old  Index
Address         Product Id
Contact no      Address
                Contact no
                Email

表 1 のすべての詳細を表 2 から移行する必要があります。表 2 には別のインデックスを使用しています。他のテーブルが古いインデックスを認識できるように、このクエリを使用しました。

Update Table 2 Set  OldIndex =Table2.index
From(select  Oldindex  from Table 1)as  new,Table 1
Where  Table1.Productid =Table2.Productid

表 1 に関連する他のテーブルがあるので、私の目標は古いインデックスを新しいインデックスに置き換え、他のテーブルにも変更が反映されることを期待することです。しかし、私はこれを正しく行っているかどうかわかりません。私のクエリは遅いです。誰かが私のクエリをテストして、すべて間違っている場合は正しい方向に向けてくれることを願っています。よろしくお願いします。

4

2 に答える 2

1

MERGEを試してみませんか

MERGE INTO Table2 AS b
USING Table1 AS p
ON p.product_id = b.product_id
WHEN MATCHED THEN b.OldIndex = b.NewIndex

postgresql でどのように機能するかはわかりませんが、ここでいくつかのサンプルを見つけることができます: https://wiki.postgresql.org/wiki/MergeTestExamples

于 2013-06-23T15:51:33.877 に答える