web stats

Agregar Una Llave Foranea A Una Tabla En Mysql


Agregar Una Llave Foranea A Una Tabla En Mysql

Una llave foránea, también llamada foreign key, es una columna o conjunto de columnas en una tabla que apuntan a la llave primaria de otra tabla. Sirve para establecer y reforzar una relación entre dos tablas.

Crear una llave foránea ayuda a garantizar la integridad referencial. Esto significa que los valores en la columna de llave foránea deben coincidir con los valores existentes en la llave primaria de la tabla referenciada.

Pasos para Agregar una Llave Foránea

Primero, debes tener dos tablas. Una será la tabla "hija" que contendrá la llave foránea. La otra será la tabla "padre" con la llave primaria a la que apuntará la llave foránea.

Necesitarás conocer el nombre de la tabla padre. También, el nombre de la columna de la llave primaria en esa tabla es importante. Por último, identifica el nombre de la columna en la tabla hija donde almacenarás la llave foránea.

Aquí te muestro cómo agregar una llave foránea a una tabla existente en MySQL.

Opción 1: Usando la Sentencia ALTER TABLE

La manera más común de agregar una llave foránea es usando la sentencia ALTER TABLE. Esta sentencia permite modificar la estructura de una tabla ya existente.

Instalación del SGBD MySQL Integrantes: Otilio Castro Guadalupe Nápoles
Instalación del SGBD MySQL Integrantes: Otilio Castro Guadalupe Nápoles

La sintaxis básica es la siguiente:


ALTER TABLE nombre_tabla_hija
ADD CONSTRAINT nombre_constraint
FOREIGN KEY (columna_llave_foranea)
REFERENCES nombre_tabla_padre(columna_llave_primaria);

nombre_tabla_hija es el nombre de la tabla a la que le agregas la llave foránea. nombre_constraint es un nombre que le das a la restricción de la llave foránea. Debe ser único dentro de la base de datos.

columna_llave_foranea es la columna en la tabla hija que actuará como llave foránea. nombre_tabla_padre es el nombre de la tabla padre. Y columna_llave_primaria es la columna de la tabla padre a la que se hace referencia (generalmente la llave primaria).

mysql - ¿Cómo copiar una llave foránea a otra tabla diferente? - Stack
mysql - ¿Cómo copiar una llave foránea a otra tabla diferente? - Stack

Ejemplo: Supongamos que tienes una tabla llamada `ordenes` y una tabla llamada `clientes`. Quieres agregar una llave foránea en la tabla `ordenes` que haga referencia a la tabla `clientes`.

Asume que la tabla `clientes` tiene una llave primaria llamada `id_cliente` y la tabla `ordenes` tiene una columna llamada `cliente_id` que almacenará el `id_cliente` de la tabla `clientes`.

La sentencia SQL sería:

mysql - ¿Cómo hago para inserta un registro que contiene una clave
mysql - ¿Cómo hago para inserta un registro que contiene una clave

ALTER TABLE ordenes
ADD CONSTRAINT fk_cliente_orden
FOREIGN KEY (cliente_id)
REFERENCES clientes(id_cliente);

Opción 2: Creando la Tabla con la Llave Foránea

Puedes definir la llave foránea al momento de crear la tabla. Esto se hace dentro de la sentencia CREATE TABLE.

La sintaxis es similar a la anterior, pero se incluye dentro de la definición de la tabla:


CREATE TABLE nombre_tabla_hija (
    ...otras columnas...,
    columna_llave_foranea TIPO_DE_DATO,
    CONSTRAINT nombre_constraint
    FOREIGN KEY (columna_llave_foranea)
    REFERENCES nombre_tabla_padre(columna_llave_primaria)
);

Ejemplo:

como crear una llave primaria y foránea en una tabla mysql - YouTube
como crear una llave primaria y foránea en una tabla mysql - YouTube

CREATE TABLE ordenes (
    id_orden INT PRIMARY KEY AUTO_INCREMENT,
    cliente_id INT,
    fecha_orden DATE,
    CONSTRAINT fk_cliente_orden
    FOREIGN KEY (cliente_id)
    REFERENCES clientes(id_cliente)
);

Es importante que el TIPO_DE_DATO de la columna de llave foránea en la tabla hija coincida con el tipo de dato de la llave primaria en la tabla padre. Si no coinciden, MySQL arrojará un error.

Consideraciones Adicionales

Al agregar una llave foránea, MySQL verificará que los valores existentes en la columna de la tabla hija correspondan a valores existentes en la llave primaria de la tabla padre. Si no, la operación fallará. Deberás corregir los datos primero.

Puedes usar la cláusula `ON DELETE` y `ON UPDATE` para especificar qué sucede cuando se borra o actualiza un registro en la tabla padre. Por ejemplo, `ON DELETE CASCADE` eliminará los registros relacionados en la tabla hija cuando se elimine un registro en la tabla padre. Otra opción es `ON DELETE SET NULL`, que establecerá el valor de la llave foránea a NULL.

Agregar una llave foránea es una práctica importante para mantener la integridad de tus datos en MySQL. Ayuda a asegurar la consistencia y validez de las relaciones entre las tablas en tu base de datos.

TUTOS-EDGAR: como crar llave foranea en mysql o sql Consistencia llaves foraneas en MySQL (MariaDB) YouTube Como crear una llave foranea en mysql+phpmyadmin, cuando tenemos una MySQL problema al introducir datos en una llave foránea - Stack

You might also like →