Có, và hành vi này là mặc định. Bất kỳ vi phạm ràng buộc duy nhất nào cũng tạo thành xung đột và sau đó là UPDATE
được thực hiện nếu ON CONFLICT DO UPDATE
được quy định. INSERT
câu lệnh chỉ có thể có một ON CONFLICT
duy nhất , nhưng conflict_target
của mệnh đề đó có thể chỉ định nhiều tên cột, mỗi tên phải có chỉ mục, chẳng hạn như UNIQUE
hạn chế. Tuy nhiên, bạn bị giới hạn trong một conflict_action
và bạn sẽ không có thông tin về ràng buộc nào đã gây ra xung đột khi xử lý hành động đó. Nếu bạn cần loại thông tin đó hoặc hành động cụ thể tùy thuộc vào vi phạm ràng buộc, bạn nên viết một hàm kích hoạt nhưng sau đó bạn mất tính nguyên tử quan trọng của INSERT ... ON CONFLICT DO ...
tuyên bố.