mysql外鍵約束語法為:alter table child_table add foreign key (foreign_key_column) references parent_table (primary_key_column),可確保兩個表間關系完整性。外鍵約束作用包括:1.數據完整性:約束子表引用必須存在于父表;2.級聯更新:父表主鍵值變動時自動更新所有引用;3.級聯刪除:父表主鍵值刪除時自動刪除所有引用。
MySQL 外鍵約束語法
在 MySQL 中,外鍵約束用于確保兩個表之間的關系完整性。其語法如下:
<code>ALTER TABLE child_table ADD FOREIGN KEY (foreign_key_column) REFERENCES parent_table (primary_key_column)</code>
登錄后復制
其中:
child_table
:需要添加外鍵約束的表。
foreign_key_column
:child_table
中引用 parent_table
主鍵的列。
parent_table
:被引用的表,其主鍵用于定義約束。
primary_key_column
:parent_table
中被引用的主鍵列。
外鍵約束的作用
外鍵約束有助于確保以下事項:
數據完整性:防止在子表中插入沒有在父表中存在的引用。
級聯更新:當父表中的主鍵值更改時,自動更新所有引用子表中的值。
級聯刪除:當父表中的主鍵值被刪除時,自動刪除所有引用子表中的值。
示例
假設我們有兩個表:orders
和 order_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_id
值。