Maison > base de données > tutoriel mysql > Comment écrire des contraintes de clé étrangère lors de la création d'une table dans MySQL

Comment écrire des contraintes de clé étrangère lors de la création d'une table dans MySQL

下次还敢
Libérer: 2024-04-22 19:51:38
original
1215 Les gens l'ont consulté

La création de contraintes de clé étrangère de table dans MySQL garantit l'intégrité référentielle. Les étapes sont les suivantes : Créez deux tables et spécifiez les clés primaires. Ajoutez une contrainte FOREIGN KEY à la table enfant, faisant référence à la clé primaire de la table parent. Spécifiez éventuellement des actions de référence (telles que des suppressions en cascade ou des mises à jour restreintes).

Comment écrire des contraintes de clé étrangère lors de la création d'une table dans MySQL

Créer des contraintes de clé étrangère de table dans MySQL

Lorsqu'une contrainte de clé étrangère est établie entre deux tables, l'intégrité référentielle entre elles peut être assurée. Les étapes suivantes présentent comment créer des contraintes de clé étrangère de table dans MySQL :

Étape 1 : Créer deux tables

Créer deux tables dans lesquelles nous souhaitons établir des contraintes de clé étrangère :

<code class="sql">CREATE TABLE parent_table (
    id INT NOT NULL,
    name VARCHAR(255) NOT NULL,
    PRIMARY KEY (id)
);

CREATE TABLE child_table (
    id INT NOT NULL,
    parent_id INT NOT NULL,
    value VARCHAR(255) NOT NULL,
    PRIMARY KEY (id),
    FOREIGN KEY (parent_id) REFERENCES parent_table(id)
);</code>
Copier après la connexion

Étape 2 : Ajouter des contraintes de clé étrangère dans la table enfant

Dans child_table, utilisez la contrainte FOREIGN KEY pour référencer la colonne parent_id à parent_table <code>id Colonne dans  : child_table 中,使用 FOREIGN KEY 约束将 parent_id 列引用到 parent_table 中的 id 列:

<code class="sql">ALTER TABLE child_table
ADD FOREIGN KEY (parent_id) REFERENCES parent_table(id);</code>
Copier après la connexion

第三步:指定引用操作(可选)

您可以使用 ON DELETEON UPDATE 子句指定在对父表进行删除或更新操作时对子表中受影响记录的行为:

<code class="sql">ALTER TABLE child_table
ADD FOREIGN KEY (parent_id) REFERENCES parent_table(id)
ON DELETE CASCADE
ON UPDATE RESTRICT;</code>
Copier après la connexion

在这段代码中:

  • ON DELETE CASCADE:当从 parent_table 中删除记录时,将自动从 child_table 中级联删除相关记录。
  • ON UPDATE RESTRICT:当 parent_table 中的记录被更新时,将阻止对 child_tablerrreee
Étape 3 : Spécifier l'opération de référence (facultatif)

Vous pouvez utiliser ON DELETE et The ON UPDATE La clause spécifie le comportement des enregistrements concernés dans la table enfant lorsqu'une opération de suppression ou de mise à jour est effectuée sur la table parent :

rrreee
    Dans ce code :
  • ON DELETE CASCADE : Lorsqu'un enregistrement est supprimé de parent_table, les enregistrements associés seront automatiquement supprimés de child_table en cascade.
  • ON UPDATE RESTRICT : lorsqu'un enregistrement dans parent_table est mis à jour, toute mise à jour des enregistrements concernés dans child_table sera bloquée.
Instructions : 🎜🎜🎜🎜Assurez-vous que le type de données de la colonne dans la table parent est le même que la colonne de clé étrangère dans la table enfant. 🎜🎜Si une colonne de la table parent autorise les valeurs nulles, la colonne de clé étrangère de la table enfant doit également autoriser les valeurs nulles. 🎜🎜Si vous modifiez une colonne dans la table parent après avoir créé une contrainte de clé étrangère, vous devrez modifier la contrainte de clé étrangère pour qu'elle corresponde au changement. 🎜🎜Les contraintes de clés étrangères aident à garantir l'intégrité des données et à empêcher l'insertion et la suppression de données incohérentes. 🎜🎜

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal