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 SET
mệ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 tableB
và sau đó cập nhật tableA
dựa trên dữ liệu mới tableB
. tableA
cần phải được khóa càng ít càng tốt và tableA
cầ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?