Trên thực tế, bạn không phải mở rộng hồ sơ bằng tay. Miễn là số lượng , trình tự và loại cột khớp nhau giữa hai bảng, bạn có thể sử dụng hình thức đơn giản hơn nhiều này:
EXECUTE 'INSERT INTO my_table SELECT ($1).*'
USING NEW;
Vì tên bảng của bạn có vẻ ổn định, bạn thậm chí không cần SQL động EXECUTE
. Chỉ đơn giản là INSERT
:
INSERT INTO my_table SELECT (NEW).*
Các dấu ngoặc đơn được yêu cầu cho một kiểu hỗn hợp để làm cho cú pháp không rõ ràng.
Tự hỏi những gì có thể thay đổi trong ứng dụng của bạn trong tương lai:
Nếu bảng mục tiêu phải đồng bộ với bảng nguồn (hoặc mục tiêu và nguồn giống nhau), thì tốt hơn hết là không liệt kê các cột một cách rõ ràng.
Nếu bạn muốn chỉ chọn một số cột nhất định và không muốn thay đổi điều đó với các bản cập nhật có thể có cho bảng nguồn hoặc bảng đích, tốt hơn là cung cấp danh sách cột.