Foreign Key ayuda a establecer relaciones de base de datos y mantener la integridad referencial. Ayudan a vincular una o más columnas de una tabla a otra tabla. Aquí se explica cómo agregar una clave externa en MySQL.
Cómo agregar una clave externa en MySQL
Estos son los pasos para agregar una clave externa en MySQL. Puede agregar una restricción de clave externa mediante las declaraciones CREATE TABLE o ALTER TABLE en SQL.
Esta es la sintaxis para crear una clave externa en MySQL.
Usando ALTER TABLE
ALTER TABLE table_name ADD CONSTRAINT constraint_name FOREIGN KEY (foreign_key_name,...) REFERENCES parent_table(column_name,...);
En la consulta anterior, table_name es la tabla donde desea agregar la clave externa. nombre_restricción es el nombre de la restricción de clave externa. nombre_clave_extranjera, … es la lista de columnas de clave externa.
tabla_principal es la tabla a la que hace referencia su clave externa, seguida de una lista de nombres de columnas en esa tabla
Lectura adicional:MySQL Alter Table Column
Uso de CREAR TABLA
CREATE TABLE table_name( column_name column_description, CONSTRAINT constraint_name FOREIGN KEY (foreign_key_name,...) REFERENCES parent_table(column_name,...) )
En la consulta anterior, table_name es la tabla donde desea agregar la clave externa. nombre_restricción es el nombre de la restricción de clave externa. nombre_clave_extranjera, … es la lista de columnas de clave externa.
tabla_principal es la tabla a la que hace referencia su clave_foránea, seguida de una lista de nombres de columna en esa tabla.
Tenga en cuenta , en ALTER TABLE necesita usar ADD CONSTRAINT mientras que en CREATE TABLE necesita usar solo la palabra clave CONSTRAINT.
Lectura adicional:Restricción DROP FOREIGN KEY de MySQL
Ejemplos de AGREGAR CLAVE EXTRANJERA de MySQL
Digamos que tienes las siguientes tablas.
Vamos a crear 2 tablas (categorías y pedidos ) y agregue una restricción de clave externa a pedidos , haciendo referencia a id columna en categorías mesa.
mysql> create table categories(id int auto_increment primary key,name varchar(255)); mysql> create table orders(id int auto_increment primary key,category_id int, CONSTRAINT fk_cat FOREIGN KEY (category_id) REFERENCES categories(id)); mysql> describe orders; +-------------+---------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------------+---------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | category_id | int(11) | YES | MUL | NULL | | +-------------+---------+------+-----+---------+----------------+
Lectura adicional:MySQL DROP RESTRICCIÓN ÚNICA
Echemos un vistazo al mismo ejemplo usando la instrucción ALTER TABLE.
mysql> create table orders(id int auto_increment primary key,category_id int); mysql> create table categories(id int auto_increment primary key,name varchar(255)); mysql> ALTER TABLE orders ADD CONSTRAINT fk_cat FOREIGN KEY (category_id) REFERENCES categories(id); mysql> describe orders; +-------------+---------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------------+---------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | category_id | int(11) | YES | MUL | NULL | | +-------------+---------+------+-----+---------+----------------+
Ubiq facilita la visualización de datos en minutos y la supervisión en paneles en tiempo real. ¡Pruébalo hoy!