我需要从另一个表更新一个表,我需要更新所有列。除了列出SET
子句中的每一列之外,有没有办法一次更新它们?像这样:
update tableA
set * = tableB.*
from tableB where tableA.id = tableB.id
Run Code Online (Sandbox Code Playgroud)
我在 psql 中尝试过,它不起作用。我必须像这样列出每一列:
update tableA
set c1 = tableB.c1, c2 = tableB.c2, ...
from tableB where tableA.id = tableB.id
Run Code Online (Sandbox Code Playgroud)
tableB
创建使用create .. like tableA
. 所以它们基本上是相同的。我这样做的原因是我需要将 .csv 数据加载到临时表tableB
,然后tableA
根据.csv 中的新数据进行更新tableB
。tableA
需要尽量少加锁,tableA
需要保持完整性。我不确定“删除然后插入”是否是一个不错的选择?