0

抱歉,如果这是重复的(和/或微不足道的) - 由于一般不熟悉 SQL,我无法很好地搜索。

用简单的英语我想做什么:

我有一个表table1,其中matched_id列的一部分是NULL. 对于这些行,我希望在table2使用值val1val2从行中创建table1一行,然后返回id新创建的行的 s以table2更新.matched_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