người ta đã nói rằng PG không xác định ràng buộc UNIQUE một phần (có điều kiện). Ngoài ra, tài liệu nói rằng cách ưa thích để thêm một ràng buộc duy nhất vào bảng là ADD CONSTRAINT
Chỉ mục duy nhất
Cách ưa thích để thêm một ràng buộc duy nhất vào bảng là ALTER TABLE ... ADD CONSTRAINT. Việc sử dụng các chỉ mục để thực thi các ràng buộc duy nhất có thể được coi là một chi tiết triển khai không nên được truy cập trực tiếp. Tuy nhiên, cần lưu ý rằng không cần phải tạo chỉ mục theo cách thủ công trên các cột duy nhất; làm như vậy sẽ chỉ nhân bản chỉ mục được tạo tự động.
Có một cách để triển khai nó bằng cách sử dụng Ràng buộc loại trừ , (cảm ơn @dukelion về giải pháp này)
Trong trường hợp của bạn, nó sẽ giống như
ALTER TABLE stop ADD CONSTRAINT myc EXCLUDE (col_a WITH =) WHERE (col_b IS null);