Tutorial MySQL

MySQL INICIO Introducción a MySQL MySQL RDBMS

mysql SQL

mysql SQL MySQL SELECCIONAR MySQL DONDE MySQL Y, O, NO MySQL ORDENAR POR MySQL INSERTAR EN Valores NULOS de MySQL ACTUALIZACIÓN MySQL MySQL ELIMINAR LÍMITE MySQL MySQL MIN y MAX MySQL CUENTA, PROMEDIO, SUMA MySQL ME GUSTA Comodines de MySQL MySQL EN MySQL ENTRE Alias ​​MySQL MySQL se une UNIÓN INTERNA MySQL MySQL IZQUIERDA UNIRSE MySQL ÚNETE A LA DERECHA UNIÓN CRUZADA MySQL MySQL Self Join UNIÓN MySQL MySQL GRUPO POR MySQL TENER MySQL EXISTE MySQL CUALQUIERA, TODO MySQL INSERTAR SELECCIÓN CASO MySQL Funciones nulas de MySQL Comentarios MySQL Operadores MySQL

Base de datos MySQL

MySQL Crear base de datos Base de datos de caída de MySQL Crear tabla MySQL Tabla desplegable de MySQL MySQL Alterar tabla Restricciones de MySQL MySQL no nulo MySQL Único Clave principal de MySQL Clave foránea de MySQL Comprobación de MySQL Valor predeterminado de MySQL Crear índice de MySQL Incremento automático de MySQL Fechas MySQL Vistas MySQL

Referencias MySQL

Tipos de datos MySQL Funciones MySQL

Ejemplos de MySQL

Ejemplos de MySQL Cuestionario MySQL Ejercicios MySQL

Restricción de clave externa de MySQL


Restricción de clave externa de MySQL

La FOREIGN KEYrestricción se utiliza para evitar acciones que destruirían enlaces entre tablas.

A FOREIGN KEYes un campo (o colección de campos) en una tabla, que se refiere a PRIMARY KEYen otra tabla.

La tabla con la clave externa se denomina tabla secundaria, y la tabla con la clave principal se denomina tabla principal o de referencia.

Mira las dos tablas siguientes:

Tabla de personas

PersonID LastName FirstName Age
1 Hansen Ola 30
2 Svendson Tove 23
3 Pettersen Kari 20

Tabla de pedidos

OrderID OrderNumber PersonID
1 77895 3
2 44678 3
3 22456 2
4 24562 1

Observe que la columna "PersonID" en la tabla "Pedidos" apunta a la columna "PersonID" en la tabla "Personas".

La columna "PersonID" en la tabla "Personas" es la PRIMARY KEYde la tabla "Personas".

La columna "PersonID" en la tabla "Pedidos" es una FOREIGN KEYen la tabla "Pedidos".

La FOREIGN KEYrestricción evita que se inserten datos no válidos en la columna de clave externa, porque tiene que ser uno de los valores contenidos en la tabla principal.



CLAVE EXTRANJERA en CREAR TABLA

El siguiente SQL crea un FOREIGN KEYen la columna "PersonID" cuando se crea la tabla "Pedidos":

CREATE TABLE Orders (
    OrderID int NOT NULL,
    OrderNumber int NOT NULL,
    PersonID int,
    PRIMARY KEY (OrderID),
    FOREIGN KEY (PersonID) REFERENCES Persons(PersonID)
);

Para permitir nombrar una FOREIGN KEYrestricción y definir una FOREIGN KEYrestricción en varias columnas, use la siguiente sintaxis SQL:

CREATE TABLE Orders (
    OrderID int NOT NULL,
    OrderNumber int NOT NULL,
    PersonID int,
    PRIMARY KEY (OrderID),
    CONSTRAINT FK_PersonOrder FOREIGN KEY (PersonID)
    REFERENCES Persons(PersonID)
);

CLAVE EXTRANJERA en ALTER TABLE

Para crear una FOREIGN KEYrestricción en la columna "PersonID" cuando la tabla "Pedidos" ya está creada, use el siguiente SQL:

ALTER TABLE Orders
ADD FOREIGN KEY (PersonID) REFERENCES Persons(PersonID);

Para permitir nombrar una FOREIGN KEYrestricción y definir una FOREIGN KEYrestricción en varias columnas, use la siguiente sintaxis SQL:

ALTER TABLE Orders
ADD CONSTRAINT FK_PersonOrder
FOREIGN KEY (PersonID) REFERENCES Persons(PersonID);

DROP una restricción FOREIGN KEY

Para descartar una FOREIGN KEYrestricción, use el siguiente SQL:

ALTER TABLE Orders
DROP FOREIGN KEY FK_PersonOrder;