ON CONFLICT
cấu trúc yêu cầu UNIQUE
ràng buộc để làm việc. Từ tài liệu trên INSERT .. ON CONFLICT
mệnh đề
:
Bây giờ, câu hỏi không rõ ràng lắm nhưng bạn có thể cần một UNIQUE
ràng buộc trên 2 cột được kết hợp:(category_id, gallery_id)
.
ALTER TABLE category_gallery
ADD CONSTRAINT category_gallery_uq
UNIQUE (category_id, gallery_id) ;
Nếu hàng được chèn khớp với cả hai các giá trị với một hàng đã có trên bảng, sau đó thay vì INSERT
, thực hiện UPDATE
:
INSERT INTO category_gallery (
category_id, gallery_id, create_date, create_by_user_id
) VALUES ($1, $2, $3, $4)
ON CONFLICT (category_id, gallery_id)
DO UPDATE SET
last_modified_date = EXCLUDED.create_date,
last_modified_by_user_id = EXCLUDED.create_by_user_id ;
Bạn có thể sử dụng các cột của ràng buộc DUY NHẤT:
ON CONFLICT (category_id, gallery_id)
hoặc tên ràng buộc:
ON CONFLICT ON CONSTRAINT category_gallery_uq