约束

约束为存储在表中的数据定义完整性和一致性规则。Snowflake 提供对 ANSI SQL 标准中定义的约束的支持,以及一些与其他数据库(如 Oracle)兼容的扩展。

重要

  • 对于标准表,Snowflake 支持定义和维护约束,但不强制执行约束,不过 NOT NULL 约束除外,这些约束始终是强制执行的。

    违反约束可能会导致意想不到的下游影响。如果您决定创建一个必须依赖的约束,请确保您的下游流程能够维护数据完整性。有关更多信息,请参阅 约束属性

    提供标准表约束主要是为了数据建模目的和与其他数据库的兼容性,以及支持使用约束的客户端工具。例如,Tableau 支持使用约束来执行联接剔除(联接消除),这可以提高生成的查询和多维数据集刷新的性能。

  • 对于 混合表,Snowflake 同时支持和强制执行约束。主键约束是必需的,并在所有混合表上强制执行,其他约束在使用时也会被强制执行。

后续主题:

语言: 中文