Comandos integridad referencial
Para implementar la integridad referencial en MySQL, necesitas definir relaciones entre tablas mediante claves primarias y claves foráneas (foreign keys). A continuación, te proporcionaré varios ejemplos de cómo hacerlo:
Ejemplo 1: Crear dos tablas con integridad referencial:
Supongamos que tienes dos tablas: Clientes
y Pedidos
, donde cada pedido debe estar relacionado con un cliente específico.
-- Crear la tabla Clientes
CREATE TABLE Clientes (
IDCliente INT PRIMARY KEY,
Nombre VARCHAR(50)
);
-- Crear la tabla Pedidos con una clave foránea que hace referencia a Clientes
CREATE TABLE Pedidos (
IDPedido INT PRIMARY KEY,
FechaPedido DATE,
IDCliente INT,
FOREIGN KEY (IDCliente) REFERENCES Clientes(IDCliente)
);
En este ejemplo, la tabla Pedidos
tiene una clave foránea (IDCliente
) que referencia la clave primaria de la tabla Clientes
.
Ejemplo 2: Definir acciones en cascada:
Puedes especificar acciones en cascada para las relaciones. Por ejemplo, si deseas que los pedidos se eliminen automáticamente cuando se elimina un cliente:
CREATE TABLE Pedidos (
IDPedido INT PRIMARY KEY,
FechaPedido DATE,
IDCliente INT,
FOREIGN KEY (IDCliente) REFERENCES Clientes(IDCliente) ON DELETE CASCADE
);
Ejemplo 3: Evitar eliminación en cascada:
Si deseas evitar que los pedidos se eliminen en cascada, puedes configurar la acción SET NULL
, lo que establecerá la columna IDCliente
en NULL
cuando se elimine un cliente:
CREATE TABLE Pedidos (
IDPedido INT PRIMARY KEY,
FechaPedido DATE,
IDCliente INT,
FOREIGN KEY (IDCliente) REFERENCES Clientes(IDCliente) ON DELETE SET NULL
);
Ejemplo 4: Cambios en cascada para actualizaciones:
Puedes configurar la acción en cascada también para actualizaciones. Por ejemplo, si deseas que al cambiar el IDCliente
en la tabla Clientes
, se actualice automáticamente en la tabla Pedidos
:
CREATE TABLE Pedidos (
IDPedido INT PRIMARY KEY,
FechaPedido DATE,
IDCliente INT,
FOREIGN KEY (IDCliente) REFERENCES Clientes(IDCliente) ON UPDATE CASCADE
);
Estos ejemplos te muestran cómo definir relaciones y configurar acciones en cascada para la integridad referencial en MySQL. La elección de las acciones depende de los requisitos específicos de tu base de datos y de cómo deseas que las relaciones se mantengan en tu aplicación.