MariaDB 中如何定义外键?

推荐答案

在 MariaDB 中,可以通过以下语法定义外键:

或者在建表时直接定义外键:

本题详细解读

1. 外键的基本概念

外键是用于建立和加强两个表数据之间链接的一列或多列。它确保了子表中的数据与父表中的数据保持一致。

2. 外键的语法解析

  • ALTER TABLE 子表名称: 指定要添加外键的子表。
  • ADD CONSTRAINT 外键名称: 为外键指定一个名称,便于后续管理。
  • FOREIGN KEY (子表列名): 指定子表中用于外键的列。
  • REFERENCES 父表名称(父表列名): 指定父表及其列,子表的外键将引用这些列。
  • [ON DELETE 参照动作]: 指定当父表中的记录被删除时,子表中的记录如何处理。常见的动作有 CASCADE(级联删除)、SET NULL(设置为 NULL)、RESTRICT(拒绝删除)等。
  • [ON UPDATE 参照动作]: 指定当父表中的记录被更新时,子表中的记录如何处理。常见的动作有 CASCADE(级联更新)、SET NULL(设置为 NULL)、RESTRICT(拒绝更新)等。

3. 示例

假设有两个表 orderscustomers,其中 orders 表中的 customer_id 列需要引用 customers 表中的 id 列:

在这个例子中,orders 表中的 customer_id 列被定义为外键,引用了 customers 表中的 id 列。当 customers 表中的某条记录被删除或更新时,orders 表中的相关记录也会被级联删除或更新。

4. 注意事项

  • 外键列和引用列的数据类型必须一致。
  • 父表中的引用列必须是唯一键或主键。
  • 外键约束可以确保数据的完整性和一致性,但在大数据量或高并发场景下,可能会影响性能。
纠错
反馈

纠错反馈