Мне нужно обновить таблицу из другой, и мне нужно обновить все столбцы. Помимо перечисления каждого столбца в 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
а затем обновить их tableA
на основе новых данных tableB
. tableA
должен быть как можно меньше заблокирован и tableA
должен сохранять целостность. Я не уверен, что «удалить, а затем вставить» будет хорошим вариантом?