Hola a todos, soy nuevo en sql y me gustaría saber si puedo modificar el contenido
de la clave primaria de una tabla, que a su vez es clave externa en otra.
Lo he probado directamente y me da error debido a la dependencia que existe.
Las tablas son estas:
-- Tabla para guardar los pedidos que hagan a la empresa.
CREATE TABLE PEDIDOS(
CODIGO INT NOT NULL, --Código del pedido, es clave primaria.
FECHAPEDIDO DATE, -- Fecha en la que se hace el pedido.
FECHAENTREGA DATE, --Fecha de entrega del pedido.
TOTAL NUMBER(10,2), --Importe total del pedido.
ESTADO VARCHAR(10) DEFAULT 'PENDIENTE', --Estado en el que se encuentra el pedido (ruta, entregado y pendiente), todos los los pedidos tienen el valor por defecto PENDIENTES.
CLIENTE VARCHAR(10), --Cliente que realiza el pedido, clave externa.
PRIMARY KEY(CODIGO),
FOREIGN KEY (CLIENTE) REFERENCES CLIENTES(DNI)
);
-- Tabla en la que se guardan los productos que componen un pedido, pudiendo
-- un mismo pedido incluir dos cantidades distintas de un mismo producto,
-- con dos precios distintos.
CREATE TABLE DETALLESPEDIDOS(
PRECIO INT NOT NULL, --Precio del producto, forma parte de la clave primaria.
CODIGOPEDIDO INT NOT NULL, --Código del pedido, forma parte de la clave primaria.
CODIGOPRODUCTO INT NOT NULL, --Código del producto, forma parte de la clave primaria.
CANTIDAD INT, --Cantidad.
PRIMARY KEY(CODIGOPEDIDO,CODIGOPRODUCTO,PRECIO),
FOREIGN KEY(CODIGOPEDIDO)REFERENCES PEDIDOS(CODIGO),
FOREIGN KEY(CODIGOPRODUCTO)REFERENCES PRODUCTOS(CODIGO)
);
Quiero modificar el contenido de CODIGO en la tabla PEDIDOS, que a su vez forma parte de la clave primaria en la tabla DETALLESPEDIDOS.
Agradecería que me echarais una mano, gracias.