Maison > Article > base de données > Comment écrire une clé étrangère pour créer une table dans MySQL
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 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>
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>
3. 指定级联操作(可选)
级联操作定义当父表中的记录被删除或更新时,外键约束如何影响子表中的相关记录。您可以使用 ON DELETE
和 ON UPDATE
<code class="sql">ALTER TABLE child_table ADD FOREIGN KEY (parent_id) REFERENCES parent_table (id) ON DELETE CASCADE ON UPDATE RESTRICT;</code>
3. Spécifiez les opérations en cascade (facultatif)
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>
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!