刚刚测试AWS Redshift,并在插入中发现了一些重复数据,我希望这些数据在键列中的复制时会失败,阅读文档后发现主键约束是“t“强制”。
任何人都知道如何防止主键重复(按照“传统”期望)。
感谢所有 Redshift 先驱者!
最佳答案
我在创建记录时分配 UUID。如果记录本质上是唯一的,我会使用类型 4 UUID(随机),如果不是,我会使用类型 5(SHA-1 哈希)并使用自然键作为输入。
那么您可以关注this instruction通过 AWS 非常轻松地执行 UPSERT。如果您的输入有重复项,您应该能够通过在临时表中发出如下所示的 SQL 来进行清理:
CREATE TABLE cleaned AS
SELECT
pk_field,
field_1,
field_2,
...
FROM (
SELECT
ROW_NUMBER() OVER (PARTITION BY pk_field order by pk_field) AS r,
t.*
from table1 t
) x
where x.r = 1
关于sql - Amazon Redshift key 未强制执行 - 如何防止重复数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15170701/