Restrições de tabela
As restrições de exclusividade, chave primária e chave estrangeira são apenas informativas; elas não são impostas pelo Amazon Redshift quando você preenche uma tabela. Por exemplo, se você inserir dados em uma tabela com dependências, a inserção poderá ser bem-sucedida mesmo que viole a restrição. Apesar disso, chaves primárias e chaves estrangeiras são usadas como sugestões de planejamento e devem ser declaradas se seu processo de ETL ou algum outro processo em seu aplicativo reforçar sua integridade.
Por exemplo, o planejador de consultas usa chaves primárias e estrangeiras em determinados cálculos estatísticos. Ele faz isso para inferir singularidade e relações referenciais que afetam técnicas de decoração de subconsulta. Ao fazer isso, ele pode ordenar um grande número de junções e remover junções redundantes.
O planejador aproveita esses relacionamentos de chave, mas assume que todas as chaves nas tabelas do Amazon Redshift são válidas quando carregadas. Se seu aplicativo permitir chaves estrangeiras ou primárias inválidas, algumas consultas podem retornar resultados incorretos. Por exemplo, uma consulta SELECT DISTINCT pode retornar linhas duplicadas se a chave primária não for exclusiva. Não defina restrições de chaves para suas tabelas se você questionar sua validez. Por outro lado, sempre declare chaves primárias e estrangeiras e restrições de exclusividade se você souber que elas são válidas.
O Amazon Redshift impõe restrições de coluna NOT NULL.
Para obter mais informações sobre restrições de tabela, consulte CRIAR TABELA. Para obter informações sobre como descartar uma tabela com dependências, consulte DESCARTAR TABELA.