首页 > 解决方案 > 如何限制重复记录插入到雪花表中

问题描述

我在雪花中使用主键创建了下表,每当我尝试将数据插入该表时,它也允许重复记录。如何限制重复ID?

create table tab11(id int primary key not null,grade varchar(10));

insert into tab11 values(1,'A');
insert into tab11 values(1,'B');

select * from tab11;

输出:插入重复记录。

ID  GRADE
1   A
1   B

标签: snowflake-cloud-data-platform

解决方案


Snowflake 允许您将列标识为主键,但它不会对它们强制唯一性。从这里的文档

Snowflake 支持定义和维护约束,但不强制执行它们,除了始终强制执行的 NOT NULL 约束。

Snowflake 中的主键纯粹是为了提供信息。我不是来自 Snowflake,但我认为在主键中强制执行唯一性与 Snowflake 在幕后存储数据的方式并不完全一致,它可能会影响插入速度。


推荐阅读