首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Zend Db级联删除

Zend Db级联删除
EN

Stack Overflow用户
提问于 2012-01-06 17:04:02
回答 1查看 286关注 0票数 1

我在试着解决这个问题,

我有三个表(表A、表B、表C)表A是B的父表,B是C的父表。

我通过设置设置正确地建立了关系

代码语言:javascript
运行
AI代码解释
复制
$_dependentTables & $_referenceMap appropriately

因此,当我更新/删除A中的一行时,B中相应的受影响行也会被更新/删除。类似地,如果我从B中删除一行,C中相应的受影响行也会被更新/删除。

但是,如果我从A中删除,而B中的行被删除,则C中应该删除的行不会被删除!

这是因为zend的级联特性不支持完全的级联,还是我遗漏了什么?

EN

回答 1

Stack Overflow用户

发布于 2012-01-06 22:52:55

它没有级联到一个关系之外的主要原因是,在调用Zend_Db_Table_Row::delete()之后,它将检索依赖表并调用Zend_Db_Table::_cascadeDelete()。在_cascadeDelete()中,它将构建一个where子句,并使用Zend_Db_Table::delete()删除一条或多条记录。

要允许真正的级联删除,您应该重写_cascadeDelete()以首先检索受影响的记录的行集,遍历该集并对每一行调用delete()

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8761537

复制
相关文章

相似问题

领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文