美文网首页
Postgresql外键约束级联删除时容易忽略的问题

Postgresql外键约束级联删除时容易忽略的问题

作者: 张广旭 | 来源:发表于2020-07-25 12:47 被阅读0次

外键约束用来实现表与表之间的参照完整性(referential integrity)。
外键约束是指一个引用表(referencing table)中的一个或多个引用字段(referencing column)必须与另一个被引用表(referenced table)中相应的被引用字段(referenced column)匹配,而且类型和值都必须匹配。
被引用表(referenced table)中的被引用列(referenced column)必须是一个非延迟的唯一约(unique key)束或者主键约束(primary key)。

外键约束可以设置级联删除。
设表B的字段y引用了表A的字段x(primary key or unique constraint),并设置了级联删除。当表A的某条记录删除时(x=x0),表B的某条记录(如果存在)也要被删除。
容易出现的问题:如果表B的字段y上没有建索引,删除表B记录时就会使用顺序扫描(Seq Scan)。当表B记录条数较多时顺序扫描会消耗较长时间。
解决方法:
表B的字段y增加索引。

相关文章

  • Postgresql外键约束级联删除时容易忽略的问题

    外键约束用来实现表与表之间的参照完整性(referential integrity)。外键约束是指一个引用表(re...

  • mysql 级联删除,外键约束

    对表t_user和t_book外键关联。在t_book中设置外键,如图示。其中: RESTRICT:创建约束。删除...

  • SQL中增删外键约束

    1. 删除外键约束 查询出表中外键约束 删除约束alter table 表名 drop constraint 外键...

  • 外键约束

    外键约束主要包含添加外键和删除外键。 1、外键约束-添加外键 create table 表名(字段名 数据类型,....

  • 草稿四

    ● 外键的删除操作---on_delete参数指定 <1> models.CASCADE---级联删除外键表的字段...

  • 设置外键,外键约束值的区别

    laravel 设置外键,并设置外键约束的方式 为联级删除 更新:在使用Navicat for mysql设计表时...

  • 数据表修改

    添加单列 添加多列 删除列 添加主键约束 添加唯一约束 添加外键约束 添加/删除默认约束 删除主键约束 删除唯一约...

  • 级联删除

    实现 级联删除(cascade delete)隶属于约束条件(constraint),因此,级联删除需要在约束条件...

  • MySQL约束以及表之间的关系(主键and外键)

    一:约束 分类: 练习 二:为何要分表 三:外键约束 四:级联操作 五:多对多关系的处理

  • Mysql复习提高

    外键约束 删除,更新时的四个选项 RESTRICT 当有关联数据时,无法删除(立即检出) NO ACTION 当有...

网友评论

      本文标题:Postgresql外键约束级联删除时容易忽略的问题

      本文链接:https://www.haomeiwen.com/subject/wviplktx.html