ได้กล่าวไปแล้วว่า PG ไม่ได้กำหนดข้อ จำกัด UNIQUE บางส่วน (เช่นเงื่อนไข) นอกจากนี้เอกสารประกอบยังบอกด้วยว่าวิธีที่ต้องการเพิ่มข้อ จำกัด เฉพาะในตารางคือADD CONSTRAINT
ดัชนีที่ไม่ซ้ำกัน
วิธีที่แนะนำในการเพิ่มข้อ จำกัด เฉพาะให้กับตารางคือแก้ไขตาราง ... เพิ่มข้อ จำกัด การใช้ดัชนีเพื่อบังคับใช้ข้อ จำกัด เฉพาะอาจถือเป็นรายละเอียดการนำไปใช้งานที่ไม่ควรเข้าถึงโดยตรง อย่างไรก็ตามคุณควรทราบว่าไม่จำเป็นต้องสร้างดัชนีด้วยตนเองในคอลัมน์ที่ไม่ซ้ำกัน การทำเช่นนั้นจะทำซ้ำดัชนีที่สร้างขึ้นโดยอัตโนมัติ
มีวิธีการนำไปใช้โดยใช้ข้อ จำกัด การยกเว้น (ขอบคุณ @dukelion สำหรับวิธีแก้ปัญหานี้)
ในกรณีของคุณจะมีลักษณะดังนี้
ALTER TABLE stop ADD CONSTRAINT myc EXCLUDE (col_a WITH =) WHERE (col_b IS null);