SQL PostgreSQL 外键语法
在本文中,我们将介绍 SQL PostgreSQL 中的外键语法,了解如何使用外键来建立表之间的关系和约束。
阅读更多:SQL 教程
什么是外键?
外键是一种用来建立表与表之间关系的约束。它定义了一个或多个列,这些列的值必须与另一个表中的主键或唯一约束的值相匹配。通过定义外键关系,我们可以保证数据的完整性和一致性。
外键语法
在 PostgreSQL 中,我们使用 FOREIGN KEY 关键字来定义外键。外键通常和 REFERENCES 关键字配合使用。具体的语法如下:
表名
是要创建外键的表的名称;列名
是要定义外键的列的名称;约束名
是外键约束的名称,可以根据需要自定义;引用表名
是被引用的表的名称;引用列名
是被引用的表中与外键关联的列的名称;ON DELETE 动作
定义了在引用表中删除行时要执行的动作,可以是CASCADE
、SET NULL
、SET DEFAULT
或RESTRICT
;ON UPDATE 动作
定义了在引用表中更新行时要执行的动作,可以是CASCADE
、SET NULL
、SET DEFAULT
或RESTRICT
。
以下是一个示例,创建了两个表 Users
和 Orders
,并在 Orders
表的 user_id
列上创建了一个外键约束:
在上面的示例中,Users
表有一个 user_id
列,它是主键列。Orders
表有一个 user_id
列,它是外键列,与 Users
表中的 user_id
列相关联。
外键约束动作
在创建外键时,我们可以指定在引用表中的操作执行时应采取的动作。下面是几个常用的外键约束动作:
CASCADE
动作表示当引用表中的行被删除或更新时,相关的行也将被删除或更新;SET NULL
动作表示当引用表中的行被删除或更新时,外键列的值将被设置为 NULL;SET DEFAULT
动作表示当引用表中的行被删除或更新时,外键列的值将被设置为默认值;RESTRICT
动作表示当引用表中的行被删除或更新时,将会失败并抛出错误。
下面是一个示例,其中定义了 CASCADE
动作:
在上面的示例中,当 Users
表中的某个行被删除或更新时,与之相关联的 Orders
表中的行也将被删除或更新。
禁用和启用外键约束
有时,在操作数据时,我们可能需要暂时禁用外键约束。在 PostgreSQL 中,我们可以使用以下语句来禁用和启用外键约束:
总结
在本文中,我们介绍了 SQL PostgreSQL 中的外键语法。我们了解了如何使用 FOREIGN KEY 关键字和 REFERENCES 关键字定义外键约束,并给出了示例说明。我们还学习了如何指定外键约束动作以及如何禁用和启用外键约束。通过使用外键,我们可以建立表之间的关系和约束,确保数据的完整性和一致性。