外键是一种数据库约束,它建立在两个表之间的关系,确保一个表中的值与另一个表中的值一致。在 SQL 中,可以使用 ALTER TABLE 语句来给表添加外键。
语法
添加外键的 SQL 语句语法如下:
sql
ALTER TABLE table_name
ADD FOREIGN KEY (column_name)
REFERENCES referenced_table_name (column_name)
[ON DELETE action]
[ON UPDATE action];
其中:
* **table_name** 是要添加外键的表名。
* **column_name** 是要创建外键的列名。
* **referenced_table_name** 是被引用的表的表名。
* **referenced_column_name** 是被引用的列名。
* **ON DELETE action** 指定当被引用的表中的记录被删除时对当前表中的记录执行的操作。可选的值包括 CASCADE、SET NULL、SET DEFAULT 和 RESTRICT。
* **ON UPDATE action** 指定当被引用的表中的记录被更新时对当前表中的记录执行的操作。可选的值包括 CASCADE、SET NULL、SET DEFAULT 和 RESTRICT。
示例
假设我们有两个表: users 和 orders 。
users 表包含以下列:
id INT NOT NULL PRIMARY KEY
name VARCHAR(255) NOT NULL
orders 表包含以下列:
id INT NOT NULL PRIMARY KEY
user_id INT NOT NULL
product_id INT NOT NULL
FOREIGN KEY (user_id) REFERENCES users (id)
在这个示例中, orders 表中的 user_id 列是外键,它引用 users 表中的 id 列。这确保了 orders 表中每个记录的 user_id 值都存在于 users 表中。
最佳实践
以下是添加外键时应遵循的一些最佳实践:
* 确保被引用的表中存在唯一键或主键。
* 选择适当的 ON DELETE 和 ON UPDATE 操作,以维护数据的一致性。
* 考虑使用外键索引来提高查询性能。
* 在添加外键之前备份数据库,以防止意外数据丢失。