我有这个UNIQUE
限制:
ALTER TABLE table ADD CONSTRAINT "abc123" UNIQUE
("col1", "col2", "col3", "col4", "col5", "col6", "col7", "col8");
Run Code Online (Sandbox Code Playgroud)
然后我这样做:
INSERT INTO table ("col1", "col2", "col3", "col4", "col5", "col6", "col7", "col8")
VALUES ('a', 'b', 'c', 'd', 'e', 'f', null, true);
INSERT INTO table ("col1", "col2", "col3", "col4", "col5", "col6", "col7", "col8")
VALUES ('a', 'b', 'c', 'd', 'e', 'f', null, true);
Run Code Online (Sandbox Code Playgroud)
两者都有效。两行已添加到表中。从逻辑上讲,第二个应该失败。但事实并非如此。
我究竟做错了什么?这让我发疯。
注意:如果这是我自己的数据,我将拥有一个真正独特的列,而不是这个“疯狂”的UNIQUE
约束。问题是这个表保存了我的银行帐户的记录,而且他们愚蠢地在 CSV 转储中没有真正的“唯一”列,我可以用它来实际确保不插入重复的行,所以我有提出一个组合整个表中所有列以确定唯一性的方法。
我目前安装了 PostgreSQL 12.x。我正在推迟为 PostgreSQL 14 版本重新安装 Windows,因为出于迷信的原因,我想跳过整个 13 代。是的,你听到的是对的。我真的很害怕运行“13”版本,我已经竭尽全力避免它,永远等待 PG 14。因为它需要一个可怕的转储/恢复,我也想避免这样做两次在“短”连续。
关于 PostgreSQL 14 Beta 的说明
此版本标志着 PostgreSQL 14 的第三个 Beta 版本,并使社区在第三季度末初步接近全面可用。
资料来源:https : //www.postgresql.org/about/news/postgresql-134-128-1113-1018-9623-and-14-beta-3-released-2277/
我还发现了这个:https : //www.postgresql.org/docs/14/release-14.html
发布日期:2021-??-?? (截至 2021-06-20)
这可能会定期更新吗?或将再次它实际上它只是设置被释放?
我正在尝试能够自动获取目标日期,以便我可以将 PG 14 版本自动放入我的日历和“倒计时”中,以便我可以期待它。
“第三季度末”的说法听起来好像很快就要到期了,但如果它还没有处于“RC”模式,那对我来说听起来不太有希望。
PS:无论声称13.x多么可靠和无问题,我仍然无法摆脱它会永久破坏我所有数据的感觉。