ฉันต้องการอัปเดตตารางจากอีกอันหนึ่งและฉันต้องอัปเดตคอลัมน์ทั้งหมด นอกจากการแสดงทุกคอลัมน์ในส่วน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 เพื่อตาราง temp tableB
แล้ว update อยู่บนพื้นฐานของข้อมูลใหม่ในtableA
จำเป็นต้องถูกล็อคให้น้อยที่สุดและต้องรักษาความสมบูรณ์ ฉันไม่แน่ใจว่า 'ลบแล้วแทรก' จะเป็นตัวเลือกที่ดีใช่ไหมtableB
tableA
tableA