Postgresql创建唯一索引

时间:2013-11-20 07:39:11

标签: postgresql

我想在mobile_number_1和mobile_number_2列上创建唯一索引。

mobile_number_1中的mobile_number_1值不会在mobile_number_1和mobile_number_2中重复

和mobile_number_2不会在mobile_number_1以及mobile_number_2

中重复出现

我的表结构:

id | mobile_number_1 | mobile_number_2 | city

2 个答案:

答案 0 :(得分:3)

我认为应该这样做(尽管没有彻底测试过)

create unique index idx_unique_mobile_number1
 on person (least(mobile_number_1, mobile_number_2));

create unique index idx_unique_mobile_number2
 on person (greatest(mobile_number_1, mobile_number_2));

答案 1 :(得分:-3)

这实际上是不可能的,您必须在代码中添加触发器或规则。 指数仅适用于一列或多列。