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

下次还敢
下次还敢original
2024-04-22 19:52:001001parcourir

La syntaxe de contrainte de clé étrangère MySQL est la suivante : ALTER TABLE child_table ADD FOREIGN KEY (foreign_key_column) REFERENCES parent_table (primary_key_column), qui garantit l'intégrité de la relation entre les deux tables. Les fonctions des contraintes de clé étrangère incluent : 1. Intégrité des données : la référence de table enfant contrainte doit exister dans la table parent ; 2. Mise à jour en cascade : mettre à jour automatiquement toutes les références lorsque la valeur de la clé primaire de la table parent change ; clé primaire de la table Toutes les références sont automatiquement supprimées lorsque la valeur est supprimée.

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

Syntaxe de contrainte de clé étrangère MySQL

Dans MySQL, les contraintes de clé étrangère sont utilisées pour garantir l'intégrité de la relation entre deux tables. La syntaxe est la suivante :

<code>ALTER TABLE child_table
ADD FOREIGN KEY (foreign_key_column)
REFERENCES parent_table (primary_key_column)</code>

Où :

  • child_table : La table à laquelle les contraintes de clé étrangère doivent être ajoutées.
  • child_table:需要添加外键约束的表。
  • foreign_key_columnchild_table 中引用 parent_table 主键的列。
  • parent_table:被引用的表,其主键用于定义约束。
  • primary_key_columnparent_table 中被引用的主键列。

外键约束的作用

外键约束有助于确保以下事项:

  • 数据完整性:防止在子表中插入没有在父表中存在的引用。
  • 级联更新:当父表中的主键值更改时,自动更新所有引用子表中的值。
  • 级联删除:当父表中的主键值被删除时,自动删除所有引用子表中的值。

示例

假设我们有两个表:ordersorder_items

<code>CREATE TABLE orders (
  order_id INT NOT NULL AUTO_INCREMENT,
  customer_id INT NOT NULL,
  PRIMARY KEY (order_id)
);

CREATE TABLE order_items (
  item_id INT NOT NULL AUTO_INCREMENT,
  order_id INT NOT NULL,
  product_id INT NOT NULL,
  PRIMARY KEY (item_id),
  FOREIGN KEY (order_id) REFERENCES orders (order_id)
);</code>

在此示例中,order_items 表的外键约束确保了每个 order_id 值在 orders 表中都存在。这意味着我们无法在 order_items 表中插入没有在 orders 表中存在的 order_idforeign_key_column : La colonne de child_table qui fait référence à la clé primaire de parent_table.

parent_table : La table référencée dont la clé primaire est utilisée pour définir les contraintes. 🎜primary_key_column : La colonne de clé primaire référencée dans parent_table. 🎜🎜Rôle des contraintes de clé étrangère🎜🎜🎜Les contraintes de clé étrangère aident à garantir les éléments suivants : 🎜🎜🎜🎜Intégrité des données : 🎜Empêcher les insertions dans les tables enfants qui n'existent pas dans la table parent Quote. 🎜🎜Mise à jour en cascade : 🎜Lorsque la valeur de la clé primaire dans la table parent change, mettez automatiquement à jour les valeurs dans toutes les tables enfants référencées. 🎜🎜Suppression en cascade : 🎜Lorsque la valeur de clé primaire dans la table parent est supprimée, toutes les valeurs référencées dans la table enfant sont automatiquement supprimées. 🎜🎜Exemple🎜🎜🎜Supposons que nous ayons deux tables : orders et order_items : 🎜rrreee🎜Dans cet exemple, L'étranger La contrainte de clé sur la table order_items garantit que chaque valeur order_id existe dans la table orders. Cela signifie que nous ne pouvons pas insérer une valeur order_id dans la table order_items qui n'existe pas dans la table orders. 🎜

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!

Déclaration:
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