Tôi cần cập nhật một bảng từ một bảng khác và tôi cần cập nhật tất cả các cột. Bên cạnh việc liệt kê mỗi cột trong SETmệnh đề, có cách nào để cập nhật tất cả chúng cùng một lúc không? Như thế này:
update tableA
set * = tableB.*
from tableB where tableA.id = tableB.id
Tôi đã thử trong psql, nó không hoạt động. Tôi phải liệt kê mỗi cột như thế này:
update tableA
set c1 = tableB.c1, c2 = tableB.c2, ...
from tableB where tableA.id = tableB.id
tableBđược tạo ra sử dụng create .. like tableA. Vì vậy, chúng là cơ bản giống hệt nhau. Và lý do tôi đang làm là vì tôi cần tải dữ liệu .csv vào bảng tạm thời tableBvà sau đó cập nhật tableAdựa trên dữ liệu mới tableB. tableAcần phải được khóa càng ít càng tốt và tableAcần giữ tính toàn vẹn. Tôi không chắc chắn 'xóa rồi chèn' sẽ là một lựa chọn tốt?