Maison > base de données > tutoriel mysql > Comment écrire une clé étrangère pour créer une table dans MySQL

Comment écrire une clé étrangère pour créer une table dans MySQL

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

Dans MySQL, vous pouvez créer une clé étrangère de table en suivant les étapes suivantes : Créez une table parent et une table enfant, et assurez-vous que les colonnes correspondantes existent dans la table parent. Utilisez les contraintes FOREIGN KEY pour associer les colonnes de la table enfant aux colonnes de la table parent. Spécifiez éventuellement une opération en cascade qui définit l'impact sur les enregistrements de la table enfant lorsque les enregistrements de la table parent sont supprimés ou mis à jour. Exécutez la requête pour vérifier si les contraintes de clé étrangère ont été appliquées correctement.

Comment écrire une clé étrangère pour créer une table dans MySQL

Comment créer une clé étrangère de table à l'aide de MySQL

Dans MySQL, les contraintes de clé étrangère sont utilisées pour garantir que les enregistrements d'une table enfant correspondent aux enregistrements associés dans la table parent. Il aide à maintenir la cohérence et l’intégrité des données. Voici les étapes pour créer une clé étrangère :

1. Créez la table parent et la table enfant

Tout d'abord, créez la table enfant qui contient la colonne de clé étrangère. Assurez-vous que les colonnes correspondantes existent dans la table parent. Par exemple :

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

CREATE TABLE child_table (
  id INT NOT NULL,
  parent_id INT,
  name VARCHAR(255)
);</code>
Copier après la connexion

2. Créez une contrainte de clé étrangère

Utilisez la contrainte FOREIGN KEY dans la table enfant pour comparer la colonne parent_id de la table enfant avec la colonne de la table parent les colonnes code>id sont associées. Par exemple : FOREIGN KEY 约束将子表中的 parent_id 列与父表中的 id 列关联起来。例如:

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

3. 指定级联操作(可选)

级联操作定义当父表中的记录被删除或更新时,外键约束如何影响子表中的相关记录。您可以使用 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

3. Spécifiez les opérations en cascade (facultatif)

  • Les opérations en cascade définissent la manière dont les contraintes de clé étrangère affectent les enregistrements associés dans la table enfant lorsque les enregistrements de la table parent sont supprimés ou mis à jour. Vous pouvez spécifier ces opérations à l'aide des clauses ON DELETE et ON UPDATE. Par exemple :
<code class="sql">SELECT * FROM child_table
WHERE parent_id NOT IN (SELECT id FROM parent_table);</code>
Copier après la connexion
  • Cet exemple précise :
  • Lorsqu'un enregistrement parent référencé dans la table parent est supprimé, les enregistrements enfants associés seront supprimés en cascade de la table enfant. Les mises à jour seront bloquées lorsque l'enregistrement parent référencé dans la table parent est mis à jour.

    4. Vérifier les contraintes

    🎜🎜Après avoir créé la contrainte de clé étrangère, exécutez la requête suivante pour vérifier si la contrainte a été appliquée : 🎜rrreee🎜Si la requête renvoie des résultats, elle indique qu'il n'y a aucun enregistrement correspondant à la l'enregistrement parent dans la table enfant et les contraintes de clé étrangère n'ont pas été appliquées correctement. 🎜

    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