borrado restringido
Publicado por maria (1 intervención) el 19/08/2008 19:44:25
Hola.
Mi problema es para hacer todos los borrados restringido aunque para resumir voy a hablar solo de dos tablas como ejemplo.
Tengo dos tablas "pedido" y "banco" definidas de la siguiente manera :
CREATE TABLE BANCO (
COD_BANCO VARCHAR(4) NOT NULL,
NOMBRE VARCHAR(20) NOT NULL,
ENTIDAD VARCHAR(4) NOT NULL,
OFICINA VARCHAR(4) NOT NULL,
DC VARCHAR(2) NOT NULL,
CUENTA VARCHAR(10) NOT NULL,
PRIMARY KEY (COD_BANCO)
);
CREATE TABLE PEDIDO (
COD_PEDIDO INT(6) NOT NULL AUTO_INCREMENT,
FECHA DATE NOT NULL,
ID_ESTADO VARCHAR(2) NOT NULL,
FORMA_PAGO CHAR NOT NULL,
COD_BANCO VARCHAR(4) NULL,
COD_USUARIO_PED INT(10) NOT NULL,
FOREIGN KEY (ID_ESTADO) REFERENCES ESTADO(ID_ESTADO) ON DELETE RESTRICT ON UPDATE CASCADE,
FOREIGN KEY (COD_BANCO) REFERENCES BANCO(COD_BANCO) ON DELETE RESTRICT ON UPDATE CASCADE,
FOREIGN KEY (COD_USUARIO_PED) REFERENCES USUARIO_PEDIDO(COD_USUARIO_PED) ON DELETE CASCADE ON UPDATE CASCADE,
PRIMARY KEY (COD_PEDIDO)
);
COD_BANCO es clave ajena respecto de la tabla banco y lo que yo quiero es que cuando borre el cod_banco no se borre de la tabla pedido.
En principio la restriccion que tengo que utilizar es on delete restrict o on delete no action pero al ejecutar el delete de la tabla banco me da un error de que no puedo borrar esa tabla porque es clave ajena de la tabla pedido.
Si elimino la restriccion on delete restrict me da el mismo error.
¿Cuál es el modo correcto de hacerlo?
Mi problema es para hacer todos los borrados restringido aunque para resumir voy a hablar solo de dos tablas como ejemplo.
Tengo dos tablas "pedido" y "banco" definidas de la siguiente manera :
CREATE TABLE BANCO (
COD_BANCO VARCHAR(4) NOT NULL,
NOMBRE VARCHAR(20) NOT NULL,
ENTIDAD VARCHAR(4) NOT NULL,
OFICINA VARCHAR(4) NOT NULL,
DC VARCHAR(2) NOT NULL,
CUENTA VARCHAR(10) NOT NULL,
PRIMARY KEY (COD_BANCO)
);
CREATE TABLE PEDIDO (
COD_PEDIDO INT(6) NOT NULL AUTO_INCREMENT,
FECHA DATE NOT NULL,
ID_ESTADO VARCHAR(2) NOT NULL,
FORMA_PAGO CHAR NOT NULL,
COD_BANCO VARCHAR(4) NULL,
COD_USUARIO_PED INT(10) NOT NULL,
FOREIGN KEY (ID_ESTADO) REFERENCES ESTADO(ID_ESTADO) ON DELETE RESTRICT ON UPDATE CASCADE,
FOREIGN KEY (COD_BANCO) REFERENCES BANCO(COD_BANCO) ON DELETE RESTRICT ON UPDATE CASCADE,
FOREIGN KEY (COD_USUARIO_PED) REFERENCES USUARIO_PEDIDO(COD_USUARIO_PED) ON DELETE CASCADE ON UPDATE CASCADE,
PRIMARY KEY (COD_PEDIDO)
);
COD_BANCO es clave ajena respecto de la tabla banco y lo que yo quiero es que cuando borre el cod_banco no se borre de la tabla pedido.
En principio la restriccion que tengo que utilizar es on delete restrict o on delete no action pero al ejecutar el delete de la tabla banco me da un error de que no puedo borrar esa tabla porque es clave ajena de la tabla pedido.
Si elimino la restriccion on delete restrict me da el mismo error.
¿Cuál es el modo correcto de hacerlo?
Valora esta pregunta


0