首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在雪花查询中未引发唯一键约束错误

在雪花查询中未引发唯一键约束错误
EN

Stack Overflow用户
提问于 2022-03-01 04:13:34
回答 2查看 600关注 0票数 1

在Postgres中,当我们尝试用相同的唯一键组合重新插入记录时,会抛出唯一键禁忌错误。

但是在雪花中,错误不被抛出,并且允许重复(即使在查询中添加强制关键字之后)

代码语言:javascript
复制
create table DUMMY(  ONE integer autoincrement start 1 increment 1, TWO integer NOT NULL, THREE varchar(7) NOT NULL, FOUR varchar(7) NOT NULL  )

ALTER TABLE DUMMY ADD CONSTRAINT UNIQUENESS UNIQUE(TWO, THREE) ENFORCED;

DB输出:

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-03-01 06:04:08

雪花自称为数据库。但事实并非如此。

https://docs.snowflake.com/en/sql-reference/constraints-overview.html

雪花支持定义和维护约束,但不强制它们,除非非空约束,这些约束总是强制的

票数 2
EN

Stack Overflow用户

发布于 2022-03-01 22:41:41

完全个人意见:

代码语言:javascript
复制
ADD CONSTRAINT UNIQUENESS UNIQUE(TWO, THREE) ENFORCED;

是免费午餐。你告诉数据库,我要把东西放进你里面,每次我都要帮我做这些检查。

当您扩展到非常大的表时,这样的检查会降低性能,原因有两个。DB应该如何最优地执行强制执行。如果它做的同样的检查比它所需要的还要多呢?在其他数据库中,您可以关闭检查,并且经常这样做,以获得更大的转换操作的性能。

在哪里--就像在雪花一样--你可以/必须管理它。有些人认为这是一种诅咒,我认为这是一种祝福。你可以在“进入”的方式上取消你的数据,然后使用它。

DML的原因是它允许现有脚本“工作”。但是,如果现有进程依赖异常,则有其不利的一面。但是公平地说,如果您正在加载1B行,如何正确地处理3个dups。

有许多方法可以去dup您的数据,在我们的经验中,我们发现大量的数据类型,我们使用专用表去dup我们的输入数据基于数据形状的知识,以及重复发生的时间/地点的流程。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71303658

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档