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).
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>
É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>
第三步:指定引用操作(可选)
您可以使用 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>
在这段代码中:
ON DELETE CASCADE
:当从 parent_table
中删除记录时,将自动从 child_table
中级联删除相关记录。ON UPDATE RESTRICT
:当 parent_table
中的记录被更新时,将阻止对 child_table
rrreeeVous 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 :
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. 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!