postgresql - 有没有办法让唯一索引忽略旧数据?
问题描述
我需要做的是阻止行在值编号、系列和型号处重复。我最初的想法是做这样的事情:
CREATE UNIQUE INDEX idx_fiscal_number
ON Fiscal(number, serie, model);
问题是这个数据库真的很旧,而且已经有很多数据重复了。所以我的问题是:有没有办法让这个唯一索引现在开始验证并接受已经存在的旧数据?
解决方案
如果您可以使用现有列表达条件“旧”,则可以尝试创建部分索引。例如,如果您有一个“年龄”列
CREATE UNIQUE INDEX idx_fiscal_number_partial
ON fiscal(number, serie, model)
WHERE age < 1000;
请参阅https://www.postgresql.org/docs/current/indexes-partial.html。
推荐阅读
- azure - 如何将 Azure 逻辑应用连接到共享日历
- ios - iOS Core Motion 如何将时间戳转换为日期?
- c# - 将数组中的随机字符串值显示为星号
- sql - SQL - 会员一年只能看一次医生
- javascript - 在 1 页 Django 中从数据库 1 中检索数据
- gravityforms - Gravity Forms 如何在页面渲染时设置简单文本字段的值
- ios - 如何将 WebRTC 与 ios app swift 集成?
- sql-server - SetSPN for Always-On 启用的服务器
- angular - 尝试在 Edge 中打开 PDF 文件显示“某些东西使此 PDF 文件无法打开”错误
- html - 选择标签在释放点击时关闭 - Angular