Tutoriel MySQL

ACCUEIL MySQL Introduction à MySQL SGBDR MySQL

SQL MySQL

SQL MySQL MySQL SÉLECTIONNER MySQL OÙ MySQL ET, OU, PAS MySQL ORDRE PAR MySQL INSÉRER DANS Valeurs NULL MySQL MISE À JOUR MySQL SUPPRIMER MySQL LIMITE MySQL MySQL MIN et MAX MySQL COUNT, AVG, SOMME MySQL J'AIME Caractères génériques MySQL MySQL dans MySQL ENTRE Alias ​​MySQL MySQL rejoint JOINTURE INTERNE MySQL JOINTURE GAUCHE MySQL MySQL RIGHT JOIN JOINTURE CROISÉE MySQL Rejoindre MySQL UNION MySQL GROUPER PAR MySQL MySQL AYANT MySQL EXISTE MySQL TOUT, TOUS MySQL INSÉRER SÉLECTIONNER CAS MySQL Fonctions nulles MySQL Commentaires MySQL Opérateurs MySQL

Base de données MySQL

Créer une base de données MySQL Base de données de dépôt MySQL Créer une table MySQL Table de dépôt MySQL Table de modification MySQL Contraintes MySQL MySQL non nul MySQL unique Clé primaire MySQL Clé étrangère MySQL Vérification MySQL MySQL par défaut Créer un index MySQL Incrémentation automatique de MySQL Dates MySQL Vues MySQL

Références MySQL

Types de données MySQL Fonctions MySQL

Exemples MySQL

Exemples MySQL Questionnaire MySQL Exercices MySQL

Contrainte MySQL FOREIGN KEY


Contrainte MySQL FOREIGN KEY

La FOREIGN KEYcontrainte est utilisée pour empêcher les actions qui détruiraient les liens entre les tables.

A FOREIGN KEYest un champ (ou une collection de champs) dans une table, qui fait référence à PRIMARY KEYdans une autre table.

La table avec la clé étrangère est appelée la table enfant et la table avec la clé primaire est appelée la table référencée ou parente.

Regardez les deux tableaux suivants :

Tableau des personnes

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

Tableau des commandes

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

Notez que la colonne "PersonID" de la table "Orders" pointe vers la colonne "PersonID" de la table "Persons".

La colonne "PersonID" dans la table "Persons" est la PRIMARY KEYdans la table "Persons".

La colonne "PersonID" dans la table "Commandes" est un FOREIGN KEYdans la table "Commandes".

La FOREIGN KEYcontrainte empêche l'insertion de données non valides dans la colonne de clé étrangère, car il doit s'agir de l'une des valeurs contenues dans la table parent.



CLÉ ÉTRANGÈRE sur CRÉER TABLE

Le SQL suivant crée un FOREIGN KEYsur la colonne "PersonID" lorsque la table "Orders" est créée :

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

Pour autoriser la dénomination d'une FOREIGN KEYcontrainte et pour définir une FOREIGN KEYcontrainte sur plusieurs colonnes, utilisez la syntaxe SQL suivante :

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)
);

CLÉ ÉTRANGÈRE sur ALTER TABLE

Pour créer une FOREIGN KEYcontrainte sur la colonne "PersonID" alors que la table "Orders" est déjà créée, utilisez le SQL suivant :

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

Pour autoriser la dénomination d'une FOREIGN KEYcontrainte et pour définir une FOREIGN KEYcontrainte sur plusieurs colonnes, utilisez la syntaxe SQL suivante :

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

Supprimer une contrainte FOREIGN KEY

Pour supprimer une FOREIGN KEYcontrainte, utilisez le SQL suivant :

ALTER TABLE Orders
DROP FOREIGN KEY FK_PersonOrder;