我试图弄清楚如何将 Table1 中的数据插入到 Table2 中,然后使用 Table2 中新创建的 ID 来更新 Table1 中的相应行。
我使用 Postgres 12.4 是为了它的价值
示例:我有两个表,例如users和metadata
用户表有以下列
| id | info | metadata_id |
Run Code Online (Sandbox Code Playgroud)
元数据表有以下列
| id | data |
Run Code Online (Sandbox Code Playgroud)
我想将表中的所有info值迁移到表的列users中,并使用相应的值更新我的值(当前为空白),本质上是回填外键。datametadatausers.metadata_idmetadata.id
有什么办法可以优雅地完成这个任务吗?我有一个工作查询,它锁定两个表并创建一个临时序列以插入到 and 中metadata.id,users.metadata_id但这似乎很脆弱,我需要在元数据表中现有的最高 ID 之后启动序列,这并不理想。
我还尝试使用带有 RETURNING 子句的数据修改 CTE 来更新表users,但无法使其正常工作。
sql postgresql common-table-expression sql-update sql-insert