2012-07-10 38 views

Respuesta

10

DEFERRABLE
NO DEFERRABLE
Esto controla si la restricción se puede aplazar. Una restricción que no es diferible se verificará inmediatamente después de cada comando. La verificación de restricciones que son diferibles se puede posponer hasta el final de la transacción (usando el comando SET CONSTRAINTS). NO DEFERENTE es el predeterminado. Solo las restricciones de clave externa actualmente aceptan esta cláusula. Todos los otros tipos de restricciones no son diferibles.

[Fuente] http://www.postgresql.org/docs/8.1/static/sql-createtable.html

En resumen, asumir dos tablas tienen dependencia cíclica FK. Cuando realizamos la inserción de datos que no tienen datos de referencia en ambas tablas y la restricción FK no es diferida, la BD arrojaría un error ya que hay una violación de la restricción FK. Si se difiere, la validación se realizará en el momento de confirmar una transacción.

+0

Eso es lo que pensé. Gracias por aclararme. – Gregg

Cuestiones relacionadas