Clé étrangère MySQL et suppression
MySQL est un système de gestion de base de données relationnelle couramment utilisé, largement utilisé et très puissant. Dans MySQL, les clés étrangères sont un concept très important et jouent un rôle important dans la conception et la maintenance des bases de données. Dans cet article, nous présenterons les clés étrangères dans MySQL et comment utiliser les clés étrangères pour supprimer des données dans la base de données.
Clé étrangère MySQL
La clé étrangère fait référence à la définition d'une clé dans une table de base de données qui pointe vers la clé primaire d'une autre table. Si une table possède une clé étrangère, alors l'enregistrement de la table principale correspondant à chaque enregistrement qualifié de cette table doit exister, sinon les opérations associées ne pourront pas être effectuées. Cette opération garantit l’intégrité et la cohérence des données entre les tables.
Nous utilisons l'exemple suivant pour illustrer la notion de clés étrangères :
Créer une table personne :
CREATE TABLE person ( id INT PRIMARY KEY, name VARCHAR(20) );
Créer une carte de table :
CREATE TABLE card ( id INT PRIMARY KEY, person_id INT, card_no VARCHAR(20), FOREIGN KEY(person_id) REFERENCES person(id) );
Dans la table card, person_id est une clé étrangère, qui pointe vers le champ id dans la table person. Le but de cette clé étrangère est de garantir que le person_id de chaque enregistrement de carte existe dans la table des personnes, garantissant ainsi la cohérence et l'intégrité.
Utiliser des clés étrangères pour supprimer
Lorsque nous supprimons dans la base de données, s'il existe une relation entre les tables, nous devons nous assurer que l'opération de suppression n'endommagera pas la base de données exhaustivité et cohérence. Dans MySQL, cela peut être réalisé en utilisant des clés étrangères.
Lors d'une opération de suppression, si l'enregistrement à supprimer existe dans une table associée à une clé étrangère, vous devez d'abord supprimer l'enregistrement dans la table associée, puis supprimer l'enregistrement dans cette table . Ce processus peut être réalisé en utilisant ON DELETE CASCADE et ON DELETE SET NULL.
ON DELETE CASCADE fonctionne en classifiant et en supprimant automatiquement les enregistrements associés dans cette table lorsque les enregistrements de la table associée sont supprimés. Exemple :
CREATE TABLE person ( id INT PRIMARY KEY, name VARCHAR(20) ); CREATE TABLE card ( id INT PRIMARY KEY, person_id INT, card_no VARCHAR(20), FOREIGN KEY(person_id) REFERENCES person(id) ON DELETE CASCADE ); INSERT INTO person(id, name) VALUES(1, 'Tom'); INSERT INTO card(id, person_id, card_no) VALUES(1, 1, '123456'); DELETE FROM person WHERE id = 1;
Dans l'exemple ci-dessus, nous avons d'abord inséré un enregistrement dans la table person, puis inséré un enregistrement dans la table card. Cet enregistrement pointe vers l'enregistrement avec l'identifiant 1 dans la table person. . Enfin, nous avons utilisé l'instruction DELETE pour supprimer l'enregistrement portant l'identifiant 1 dans la table des personnes. Cette opération de suppression supprimera également automatiquement les enregistrements associés dans la table des cartes.
ON DELETE SET NULL L'opération est lorsque les enregistrements de la table associée sont supprimés, les enregistrements associés dans cette table sont définis sur NULL. Exemple :
CREATE TABLE person ( id INT PRIMARY KEY, name VARCHAR(20) ); CREATE TABLE card ( id INT PRIMARY KEY, person_id INT, card_no VARCHAR(20), FOREIGN KEY(person_id) REFERENCES person(id) ON DELETE SET NULL ); INSERT INTO person(id, name) VALUES(1, 'Tom'); INSERT INTO card(id, person_id, card_no) VALUES(1, 1, '123456'); DELETE FROM person WHERE id = 1;
Dans l'exemple ci-dessus, nous avons d'abord inséré un enregistrement dans la table person, puis inséré un enregistrement dans la carte de la table. Cet enregistrement pointe vers l'identifiant 1 dans la table person Record. . Enfin, nous avons utilisé l'instruction DELETE pour supprimer l'enregistrement avec l'identifiant 1 dans la table des personnes. Cette opération de suppression définira automatiquement l'identifiant de la personne dans l'enregistrement associé dans la table des cartes sur NULL.
Summary
La clé étrangère MySQL est un concept très important qui joue un rôle important dans la conception et la maintenance des bases de données. L'utilisation de clés étrangères peut garantir l'intégrité et la cohérence des données entre les tables. Lors de l'exécution d'une opération de suppression, vous pouvez utiliser ON DELETE CASCADE et ON DELETE SET NULL pour gérer l'association entre les tables afin de garantir la cohérence de la base de données.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!