sql中外码怎么设置-SQL

SQL 中外码的设置

外码是用于在两个表之间建立关系的一种数据库约束。它通过在子表中创建一个列,该列引用父表中的主键列来实现。

设置外码的步骤:

  1. 确定父表和子表:确定与外码相关联的父表和子表。父表包含原始数据,而子表包含与父表中的数据相关联的数据。
  2. 创建外码列:在子表中创建一列,用于存储指向父表主键的引用。此列通常使用与父表主键列相同的名称,并添加 "_id" 后缀。
  3. 使用 FOREIGN KEY 约束:在子表上使用 FOREIGN KEY 约束,将外码列链接到父表的主键。语法为:

    ALTER TABLE 子表名称 ADD FOREIGN KEY (外码列名称) REFERENCES 父表名称 (父表主键列名称)

  4. 指定引用动作:当父表中的数据发生更改或删除时,可以通过引用动作指定子表中数据的处理方式。常见的引用动作包括:

    • RESTRICT:阻止更新或删除父表中的数据,除非子表中所有相关记录也受到更新或删除的影响。
    • CASCADE:自动更新或删除子表中的数据,以响应父表中的更新或删除操作。
    • SET NULL:将子表中所有相关记录的外码值设置为 NULL,以响应父表中的更新或删除操作。
    • SET DEFAULT:将子表中所有相关记录的外码值设置为默认值,以响应父表中的更新或删除操作。

示例:

假设我们有以下两个表:

  • 客户表 (Customers):包含客户信息,主键为 customer_id。
  • 订单表 (Orders):包含订单信息,外码 customer_id 链接到 Customers 表中的 customer_id。

外码的设置:

ALTER TABLE Orders ADD FOREIGN KEY (customer_id) REFERENCES Customers (customer_id)
登录后复制

引用动作的设置:

ALTER TABLE Orders ADD FOREIGN KEY (customer_id) REFERENCES Customers (customer_id) ON DELETE CASCADE
登录后复制

通过设置外码,我们可以确保子表中的数据与父表中的数据保持一致性,并防止数据不一致性。

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。