0

これがどのように機能するかはわかりませんが、2 つのテーブルがあります。1 つのテーブル インストゥルメントと別のインストルメント メタデータ。インストルメントのインストルメント メタデータは 1 行のみである必要があります。誰かがフィールドを追加して 1 対多にしたため、一部のツールの現在のインストルメント メタデータを削除する移行を作成しようとしています。私はこれでそれをしました:

delete  from instrumentmetadata where Id  IN (select MetadataId from instrument)

ここで、instrument のいくつかの行に対して、instrumentmetadata に行を追加したいと思います (各楽器に対して 1 対 1 のメタデータを作成します)。私のinstrumentmetadataのIdフィールドはinstrumentテーブルのMetadataIdと一致する必要があるため、それを行う方法がわかりませんでした。役立つ構文があれば fluent-migrator を使用していますが、私は fluent-migrator についてよく知らないので、純粋な sql で問題ありません。前もって感謝します!

4

1 に答える 1

0

インストゥルメントの名前はわかっているが ID はわかっていないと仮定すると、次のように ID をクエリできます。

insert  instrumentmetadata 
        (id, col1, col2)
select  id
,       'val1'
,       'val2'
from    instrument
where   name = 'Impulse drive replicator'
于 2013-08-24T15:12:05.533 に答える