You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Cloud Spanner不强制父子表参照完整性具体指什么?

Cloud Spanner 父子表参照完整性的强制执行边界

首先明确:你看到的「插入子行之前必须存在父行」是Cloud Spanner确实会强制执行的规则,这是INTERLEAVE IN关联的基础约束。而所谓的「不强制父子表之间的参照完整性」,指的是它不会强制执行以下几类典型的参照完整性规则:

  • 父行删除时,不会自动级联删除子行:即使删除了某条父行,对应的子行依然可以保留在数据库中,系统不会自动清理这些“孤儿行”。
  • 父行主键更新时,不会自动同步子行的关联字段:如果修改父行的主键值,子行中关联该父行的字段不会被系统自动更新,需要你手动处理,否则子行的关联关系会失效。
  • 允许子行关联不存在的父行(除插入场景):插入子行时必须有父行,但后续修改子行的关联字段时,系统不会校验该字段对应的父行是否存在——也就是说,你可以把子行的关联字段改成一个不存在的父行主键,这种操作在普通带外键约束的关系型数据库中会被阻止,但Cloud Spanner允许。

这种设计是Cloud Spanner在分布式场景下权衡性能与一致性的结果:放弃部分自动参照完整性校验,减少分布式锁开销,把关联逻辑的维护交给应用层处理,换取更高的写入性能和灵活性。

内容的提问来源于stack exchange,提问作者Learner

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 14:49:56