在 mysql 中添加外鍵可確保數(shù)據(jù)完整性,通過將一個表中的列與另一個表中的主鍵關(guān)聯(lián)實(shí)現(xiàn)。在表中添加外鍵的語法為:alter table table_name add foreign key (column_name) references referenced_table_name (referenced_column_name)。在插入新記錄時,外鍵列的值必須等于已存在行的主鍵值。外鍵約束包括 on delete 和 on update,可指定外鍵引用的行被刪除或更新時采取的操作。
MySQL 中添加外鍵
MySQL 中添加外鍵可以確保數(shù)據(jù)完整性和一致性。外鍵通過將一個表中的列與另一個表中的主鍵關(guān)聯(lián)來實(shí)現(xiàn)。
如何添加外鍵
使用以下語法在 MySQL 中添加外鍵:
ALTER TABLE table_name ADD FOREIGN KEY (column_name) REFERENCES referenced_table_name (referenced_column_name);
登錄后復(fù)制
其中:
table_name 是要添加外鍵的表。
column_name 是要作為外鍵的列。
referenced_table_name 是包含外鍵列所引用的主鍵的表。
referenced_column_name 是作為外鍵引用的主鍵列。
示例
假設(shè)我們有兩個表:
orders:包含訂單信息,它具有字段 order_id 作為主鍵。
products:包含產(chǎn)品信息,它具有字段 product_id 作為主鍵。
要在外鍵 order_id 和 products 表的主鍵 product_id 之間建立關(guān)聯(lián),可以使用以下查詢:
ALTER TABLE orders ADD FOREIGN KEY (order_id) REFERENCES products (product_id);
登錄后復(fù)制
現(xiàn)在,當(dāng)向 orders 表中插入新記錄時,order_id 列的值必須等于 products 表中現(xiàn)有行的 product_id 值。
外鍵約束
添加外鍵時,可以指定以下約束:
ON DELETE:指定當(dāng)引用的行在 referenced_table_name 表中被刪除時應(yīng)采取的操作。選項包括 RESTRICT、CASCADE 和 SET NULL。
ON UPDATE:指定當(dāng)引用的行在 referenced_table_name 表中被更新時應(yīng)采取的操作。選項包括 RESTRICT、CASCADE 和 SET NULL。
例如,要指定在刪除 products 表中的行時級聯(lián)刪除 orders 表中的引用行,可以使用以下語法:
ALTER TABLE orders ADD FOREIGN KEY (order_id) REFERENCES products (product_id) ON DELETE CASCADE;
登錄后復(fù)制