0

これが重複している(および/または些細な)場合はお詫びします-SQL全般に慣れていないため、うまく検索できませんでした。

平易な英語で私がやりたいこと:

table1の一部が であるテーブルがあります。これらの行について、値を使用して行から行を作成し、新しく作成された行の を返しての値を更新したいと考えています。matched_idNULLtable2val1val2table1idtable2matched_idtable1

これまでのクエリ試行ではtable2、必要なエントリに対して に新しい行が作成されmatched_idますが、 の行の値table1はすべて、 の対応する行ではなく、同じ値 (最初の挿入からの値と思われます) に設定されますtable2

WITH new_ids AS (
    INSERT INTO table2 (val1, val2) SELECT val1, val2
    FROM table1 WHERE matched_id IS NULL RETURNING id)
UPDATE table1 SET matched_id = new_ids.id 
FROM new_ids 
WHERE matched_id IS NULL
4

0 に答える 0