snowflake-cloud-data-platform - 如何限制重复记录插入到雪花表中
问题描述
我在雪花中使用主键创建了下表,每当我尝试将数据插入该表时,它也允许重复记录。如何限制重复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 允许您将列标识为主键,但它不会对它们强制唯一性。从这里的文档:
Snowflake 支持定义和维护约束,但不强制执行它们,除了始终强制执行的 NOT NULL 约束。
Snowflake 中的主键纯粹是为了提供信息。我不是来自 Snowflake,但我认为在主键中强制执行唯一性与 Snowflake 在幕后存储数据的方式并不完全一致,它可能会影响插入速度。
推荐阅读
- python - Django Docker:django.db.utils.OperationalError:无法将主机名“db”转换为地址:名称或服务未知
- plotly - Plotly Express:如何在数据标签上添加数千个逗号分隔符
- c++ - 我应该如何以相反的顺序循环 C++ 容器的元素?
- java - 预订系统 JavaCode Eclipse
- c - 在这个以整数作为参数的函数(在 C 中)中:为什么每次调用函数时 sum = 0 不?
- python - 尝试使用 buildozer 构建 apk 时出错
- swift - 使 UIFont 黑色/沉重和斜体
- json - 如何向 json 格式添加新值
- django - TypeError: SET_NULL() 缺少 4 个必需的位置参数:“collector”、“field”、“sub_objs”和“using”
- python - 如何隐藏熊猫数据框中的特定行