外键是一种数据库约束,用于在表之间建立关系。它有助于确保数据完整性并强制执行参照完整性,这意味着子表中的记录必须引用父表中的有效记录。
外键语法
在 SQL 数据库中,使用 FOREIGN KEY 关键字设置外键。语法如下:
ALTER TABLE [子表名称] ADD FOREIGN KEY ([外键列名称]) REFERENCES [父表名称]([父表列名称])
例如,如果您有一个名为 posts 的表和一个名为 categories 的表,并且您希望将 posts 表中的 category_id 列与 categories 表中的 id 列相关联,则可以使用以下语句设置外键:
ALTER TABLE posts ADD FOREIGN KEY (category_id) REFERENCES categories (id)
外键的作用
外键具有以下优势:
* **数据完整性:**外键防止在子表中创建指向父表中不存在记录的引用。
* **参照完整性:**外键确保在父表删除记录时,子表中引用该记录的所有记录都将级联删除或更新。
* **数据组织:**外键有助于组织数据库中的数据,使之更容易理解和管理。
外键注意事项
在使用外键时,需要注意以下几点:
* **主键和外键:**父表中的列必须是唯一且非空的,这意味着它必须是主键,UNIQUE 约束或其他唯一约束。
* **外键匹配类型:**可以指定外键匹配类型,例如 ON DELETE CASCADE、ON UPDATE CASCADE 等,以控制外键操作的影响。
* **循环引用:**避免在不同表之间创建循环外键引用,因为这会导致死锁。