在我的PostgreSQL数据库中,我出于各种原因从整数键转换为UUID。所以我现在有一个表格ident serial primary key
,表格TeamPerson一个person_id integer references Person (ident)
。
然后,我将向Person添加一个uid UUID
列,并为TeamPerson添加一个person_uid references Person (uid)
列。所以现在我需要让所有person_uid对应于person_id引用。我想要的东西是:
UPDATE TeamPerson
SET person_uid = (
SELECT uid FROM Person WHERE ident = current_team_person_row.person_id
)
我current_team_person_row
是我试图解决的问题。我想我需要一个WHERE CURRENT OF
的光标,但我还没有理解如何做到这一点。
答案 0 :(得分:0)
您可能正在寻找:correlated subquery,也称为“依赖子查询”
在SQL数据库查询中,相关子查询(也称为 synchronized子查询)是一个子查询(嵌套在另一个子查询中的查询) 查询)使用外部查询中的值。
UPDATE TeamPerson tp
SET person_uid = (
SELECT uid FROM Person p
WHERE p.ident = tp.person_id
)