PDA

Ver la Versión Completa : Borrados en cascada


xerkan
12-12-2003, 12:53:34
A ver si alguien puede solventarme esta duda, tengo dos tablas:

CREATE TABLE TiposContrato(
idContrato numeric not null,
Nombre varchar(30) not null,
idPorCotizacion varchar(10),

CONSTRAINT PK_TiposContrato PRIMARY KEY(idContrato),
CONSTRAINT UK_TipCon_Nombre UNIQUE(Nombre),
CONSTRAINT FK_TipCon_idPorCotizacion FOREIGN KEY(idPorCotizacion) REFERENCES PorCotizaciones(idCotizacion) on delete cascade);


CREATE TABLE PorCotizaciones(
idCotizacion varchar(10) not null,
nombre varchar(30),
CONSTRAINT PK_PorCotizaciones PRIMARY KEY(idCotizacion));

el caso es que cuando borro un registro de la tabla tiposcontrato no me borra los registros asociados de la tabla PorCotizaciones

Juliŕ T.
12-12-2003, 20:23:39
tal y como lo tienes cuando borres un registro de PorCotizaciones te borrará todos los registros que coincidan con las refrencias de la tabla TiposContrato y no al revés como quieres que lo haga

xerkan
15-12-2003, 12:36:47
Si no te he entendido mal, quieres decir que para q se haga el borrado en PorCotizaciones dices que se borrara las de tiposcontrato??

Sin embargo cuando se intenta borrar en porcotizaciones larga un mensage de violacion de la clave foranea (lo cual creo q es lo normal), alguna otra idea, de por q no me realiza el borrado en cascada??

brandolin
15-12-2003, 13:50:52
Creo que el codigo deberia ser:

CREATE TABLE TiposContrato(
idContrato numeric not null,
Nombre varchar(30) not null,
idPorCotizacion varchar(10),

CONSTRAINT PK_TiposContrato PRIMARY KEY(idContrato),
CONSTRAINT UK_TipCon_Nombre UNIQUE(Nombre),


CREATE TABLE PorCotizaciones(
idCotizacion varchar(10) not null,
nombre varchar(30),
CONSTRAINT PK_PorCotizaciones PRIMARY KEY(idCotizacion));
CONSTRAINT FK_TipCon_idPorCotizacion FOREIGN KEY(idPorCotizacion) REFERENCES TiposContrato(idCotizacion) on delete cascade);


Probalo yo no tengo estas tablas pero me funcionan con una estructura parecida.

Avisa el resultado