【发布时间】:2014-04-24 20:19:06
【问题描述】:
我需要从另一个表更新一个表,并且我需要更新所有列,我的问题是,除了列出 SET 中的每一列之外,有没有办法像这样更新它们:
update tableA
set * = tableB.*
from tableB where tableA.id = tableB.id
我在 psql 中尝试过,它不起作用.. 我必须像这样列出每一列:
update tableA
set c1 = tableB.c1, c2 = tableB.c2, ...
from tableB where tableA.id = tableB.id
tableB 是使用 create..like tableA 创建的。所以它们基本上是相同的。我这样做的原因是我需要将.csv数据加载到临时表tableB,然后根据tableB中的新数据更新tableA。 tableA 需要尽可能少地被锁定,并且 tableA 需要保持完整性。我不确定“删除然后插入”是否是一个不错的选择?
谢谢!
【问题讨论】:
标签: sql postgresql psql