Heim >Datenbank >MySQL-Tutorial >So schreiben Sie Fremdschlüsseleinschränkungen beim Erstellen einer Tabelle in MySQL

So schreiben Sie Fremdschlüsseleinschränkungen beim Erstellen einer Tabelle in MySQL

下次还敢
下次还敢Original
2024-04-22 19:52:001001Durchsuche

Die Syntax der MySQL-Fremdschlüsseleinschränkung lautet: ALTER TABLE child_table ADD FOREIGN KEY (foreign_key_column) REFERENCES parent_table (primary_key_column), wodurch die Integrität der Beziehung zwischen den beiden Tabellen sichergestellt wird. Zu den Funktionen von Fremdschlüsseleinschränkungen gehören: 1. Datenintegrität: Die eingeschränkte untergeordnete Tabellenreferenz muss in der übergeordneten Tabelle vorhanden sein. 2. Kaskadenaktualisierung: Automatische Aktualisierung aller Referenzen, wenn sich der Primärschlüsselwert der übergeordneten Tabelle ändert Tabellenprimärschlüssel Alle Referenzen werden automatisch gelöscht, wenn ein Wert gelöscht wird.

So schreiben Sie Fremdschlüsseleinschränkungen beim Erstellen einer Tabelle in MySQL

MySQL-Syntax für Fremdschlüsseleinschränkungen

In MySQL werden Fremdschlüsseleinschränkungen verwendet, um die Integrität der Beziehung zwischen zwei Tabellen sicherzustellen. Die Syntax lautet wie folgt:

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

Wobei:

  • child_table: Die Tabelle, zu der Fremdschlüsseleinschränkungen hinzugefügt werden müssen.
  • 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: Die Spalte in child_table, die auf den Primärschlüssel von parent_table verweist.

parent_table: Die referenzierte Tabelle, deren Primärschlüssel zum Definieren von Einschränkungen verwendet wird. 🎜primary_key_column: Die Primärschlüsselspalte, auf die in parent_table verwiesen wird. 🎜🎜Rolle von Fremdschlüsseleinschränkungen🎜🎜🎜Fremdschlüsseleinschränkungen tragen dazu bei, Folgendes sicherzustellen: 🎜🎜🎜🎜Datenintegrität: 🎜Einfügungen in untergeordnete Tabellen verhindern, die in der übergeordneten Tabelle nicht vorhanden sind. 🎜🎜Kaskadierende Aktualisierung: 🎜Wenn sich der Primärschlüsselwert in der übergeordneten Tabelle ändert, werden die Werte in allen referenzierten untergeordneten Tabellen automatisch aktualisiert. 🎜🎜Kaskadierendes Löschen: 🎜Wenn der Primärschlüsselwert in der übergeordneten Tabelle gelöscht wird, werden alle referenzierten Werte in der untergeordneten Tabelle automatisch gelöscht. 🎜🎜Beispiel🎜🎜🎜Angenommen, wir haben zwei Tabellen: orders und order_items: 🎜rrreee🎜In diesem Beispiel ist The Foreign Die Schlüsseleinschränkung für die Tabelle „order_items“ stellt sicher, dass jeder Wert für „order_id“ in der Tabelle „orders“ vorhanden ist. Das bedeutet, dass wir keinen order_id-Wert in die Tabelle order_items einfügen können, der in der Tabelle orders nicht vorhanden ist. 🎜

Das obige ist der detaillierte Inhalt vonSo schreiben Sie Fremdschlüsseleinschränkungen beim Erstellen einer Tabelle in MySQL. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn