Restricciones de tablas
Las restricciones de unicidad, clave principal y clave externa son solo informativas, Amazon Redshift no las aplica al rellenar una tabla. Por ejemplo, si inserta datos en una tabla con dependencias, la inserción puede realizarse correctamente aunque infrinja la restricción. No obstante, las claves principales y externas se utilizan como sugerencias de planificación y deben estar declaradas si el proceso de Extract, Transform, Load (ETL, Extracción, transformación y carga) o algún otro proceso de su aplicación exige su integridad.
Por ejemplo, el planificador de consultas emplea claves principales y externas en determinados cálculos estadísticos. Con ello se infiere la unicidad y las relaciones referenciales que afectan a las técnicas de descorrelación de las subconsultas. De este modo, puede ordenar una gran cantidad de uniones y eliminar aquellas que sean redundantes.
El planificador aprovecha estas relaciones entre claves, pero supone que todas las claves de las tablas de Amazon Redshift son válidas tal y como se cargan. Si su aplicación admite claves externa o principales no válidas, algunas consultas podrían devolver resultados incorrectos. Por ejemplo, una consulta SELECT DISTINCT podría devolver filas duplicadas si la clave principal no es única. No defina restricciones de claves para sus tablas si duda de su validez. Sin embargo, siempre debe declarar las claves principales y externas y las restricciones de unicidad si sabe que son válidas.
Amazon Redshift sí impone restricciones en las columnas NOT NULL.
Para obtener más información acerca de estas restricciones, consulte CREATE TABLE. Para obtener información acerca de cómo eliminar una tabla con dependencias, consulte DROP TABLE.