В строке Zend_Table_Abstract внутри функции _cascadeDelete
строка строится так:
$rowsAffected += $this->delete($where);
Вместо этого он должен быть построен примерно так:
$toDelete = $this->fetchAll($where);
foreach($toDelete as $row) {
$rowsAffected += $row->delete();
}
Подробнее здесь .
Это сработало для меня по одной причине, но нужно проверить больше.