PostgreSQL:如何让 ADD UNIQUE 工作
PostgreSQL: How to get ADD UNIQUE to work
我截断了我的 table 然后添加了独特的:
ALTER TABLE mytable
ADD UNIQUE (id,loan_type,term,oldestyear)
插入数据后,还是重复,我是不是哪里做错了?
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",
我希望 id、loan_type、term 和最早的年份是唯一的集合。 oldestyear 有时会为空,但尽管如此它仍然是一个独特的集合。
如果可以找到至少一个无效(非空)值,则可以在将 NULL
值转换为非空值的表达式上创建唯一索引,以便比较处理它们相同:
create unique index on mytable (id,loan_type,term,coalesce(oldestyear, -42));
我截断了我的 table 然后添加了独特的:
ALTER TABLE mytable
ADD UNIQUE (id,loan_type,term,oldestyear)
插入数据后,还是重复,我是不是哪里做错了?
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",
我希望 id、loan_type、term 和最早的年份是唯一的集合。 oldestyear 有时会为空,但尽管如此它仍然是一个独特的集合。
如果可以找到至少一个无效(非空)值,则可以在将 NULL
值转换为非空值的表达式上创建唯一索引,以便比较处理它们相同:
create unique index on mytable (id,loan_type,term,coalesce(oldestyear, -42));