Amazon Redshift
数据库开发人员指南 (API Version 2012-12-01)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。点 击 Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.

定义约束

唯一键、主键和外键约束仅供参考;Amazon Redshift 并不强制实施它们。但是,主键和外键用作规划提示,如果您应用程序中的 ETL 处理或其他一些处理强制其完整性,则应声明它们。

例如,查询计划程序在某些统计计算中使用主键和外键来推断影响子查询去相关性技术的唯一性和参考关系,以排序大量的联接并消除冗余联接。

计划程序需要利用这些键关系,但它假定 Amazon Redshift 表中的所有键在加载时是有效的。如果您的应用程序允许无效的外键或主键,则某些查询可能返回错误的结果。例如,如果主键不唯一,则 SELECT DISTINCT 查询可能会返回重复的行。如果您不确定自己的表的键约束是否正确,则不要定义它们。相反,如果您确定主键和外键以及唯一性约束有效,则应始终声明它们。

Amazon Redshift 强制实施 NOT NULL 列约束。