Ver Mensaje Individual
  #5 (permalink)  
Antiguo 26/03/2007, 09:49
Avatar de Pip
Pip
 
Fecha de Ingreso: noviembre-2003
Ubicación: Málaga
Mensajes: 280
Antigüedad: 20 años, 5 meses
Puntos: 0
Re: Constraint para borrar varios campos ON DELETE

Creo que eso no soluciona el problema (aunque se lo he puesto porque es necesario que valgan NULL si inicialmente no hacen referencia a ningún usuario).

Verás, cuando hago:

Código PHP:
DELETE FROM usuario
me da el siguiente error:

Código PHP:
ERRORinsert or update on table usuario" violates foreign key constraint "usuario_cod_usuario_fkey"
Estado SQL:23503
Detalle:Key (cod_usuario)=(1) is not present in table "
sub_usuario".
Contexto:SQL statement "
UPDATE ONLY "public"."usuario" SET "depende2" NULL WHERE "depende2" = $1
Y mi lectura de ese error es que postgreSQL comprueba al hacer DELETE FROM usuario qué elemento hace referencia a cod_usuario y hace con él lo que diga su sentencia ON DELETE (poner a nulo o borrarlo en cascada). Y ya no sigue comprobando más referencias a ese campo (al menos que vengan de una misma tabla). Entonces postgresql comprueba que depende2 y depende3 hacen referencia a algo que no existe y da ese error.

Esa es mi lectura del problema, quizás me equivoque, porque me parecería un fallo de postgreSQL, ya que no permitiría una relación como la que yo intento. Ahora mismo tengo incluido el DEFAULT NULL que me has dicho cacr. A pesar de eso, da ese error que es el mismo de antes.

A ver si alguien sabe cual puede ser la posible solución.
__________________
por Pip