entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

0voto

Implicaciones de las reglas de integridad referencial en el borrado con SQL

Si existen las tablas:

create table factura (
    id INTEGER NOT NULL,
    fecha DATE NOT NULL
)
create table detalle_factura (
    idFactura INTEGER NOT NULL,
    cantidad INTEGER NOT NULL,
    modelo VARCHAR(50) NOT NULL,
    precio DECIMAL(5,2) NOT NULL,

    CONSTRAINT fk_detalle_factura FOREIGN KEY (idFactura) REFERENCES factura(id) ON UPDATE CASCADE ON DELETE CASCADE
)    

¿Cuantos registros deberían quedar en la tabla detalle_factura luego de ejecutar la siguiente sentencia?

delete from factura;

2 Respuestas

1voto

joseco48 Puntos5120

Si es que hay datos en detalle_factura que referencian a algun(os) registro(s) de factura es probable que no te deje eliminar ya que el contraint fk_detalle_factura no te va dejar. Para poder eliminar un registro en factura y los registros referenciados en detalle_factura se eliminen tambien debes agregar la clausula DELETE ON CASCADE en la definicion del constraint, algo asi:

:
CONSTRAINT fk_detalle_factura FOREIGN KEY (idFactura) REFERENCES factura(id)
ON DELETE CASCADE
:

Espero te haya servido,
Saludos

0voto

Peter Puntos150470

Cero (por el cascadeo).

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta