PostgreSQL:如何使添加唯一性起作用

时间:2019-02-27 07:10:43

标签: postgresql unique-constraint

我已经删掉了桌子,然后添加了唯一的内容:

id       |loan_type      |apr   |term|oldestyear|valid_period                     
---------|---------------|------|----|----------|---------------------------------
     8333|auto new       |0.0249|  36|          |["2019-02-26 22:48:07.305304-08",
     8333|auto new       |0.0249|  36|          |["2019-02-26 22:47:38.421624-08",

插入数据后,它仍然重复,我做错了什么吗?

with open(path_to_file,'rb') as f:
    contents = f.read()
contents = contents.rstrip("\n").decode("utf-16")

我希望id,loan_type,term和最旧的年份成为唯一的集合。最旧的年份有时会为null,但是尽管如此,它仍然是唯一的。

1 个答案:

答案 0 :(得分:2)

如果可以找到至少一个无效(非null)值,则可以在将NULL值转换为非null值的表达式上创建唯一索引,以便比较将它们视为相同:

create unique index on mytable (id,loan_type,term,coalesce(oldestyear, -42));