Bạn không thể dễ dàng làm điều này. least()
/ greatest()
cách tiếp cận sẽ không hoạt động trong mọi trường hợp.
Postgres có một số thao tác lập chỉ mục ưa thích. Nhưng cách tốt nhất là sử dụng bàn nối. Ví dụ:
create table userPhones (
userPhoneId bigint primary key ,
userId bigint references users(id),
phone_counter int check (phone_counter in (1, 2)),
phone varchar,
unique (userId, phone_counter),
unique(phone)
);
Điều này cũng giới hạn số lượng số điện thoại cho mỗi người dùng là 2.