也许有人可以说他对Yii + PostgreSQL分区表有所了解。 带有分区表,检查和触发器的PostgreSQL部分工作得很好,但我不能让Yii 爱这些表..
问题是插入到分区表PostgreSQL给出0 rows affected
,我无法弄清楚如何解决这个问题。
Yii模型认为新记录未保存(但确实如此)并且$Model->save();
返回false,因此afterSave()
无法正常工作等等。
->find()
或->findAll()
等所有其他方法都运作良好。即使我刚刚更新保存的记录抛出yii一切正常,我也被执行afterSave
。问题仅出在->save()
部分。
更新工作,因为我只在插入新行时触发。
我正在使用触发器按表拆分新数据。也许我需要修改触发器,以便postgres知道我将新数据转发到slave
表而不是master
?
还有一件事。我将主键添加到master
表,因此Yii Model(CActiveRecord)不会在没有pk的情况下抛出有关表的错误。我知道文档没有暗示这一点,但我得到了这种方式。只是试图给出我的情况大图片。
谢谢!
答案 0 :(得分:1)
您可以尝试使用规则作为替代方案。当它重写查询时,我希望它返回正确数量的受影响的行。虽然触发器在大多数情况下更好,但我认为规则比在主表中插入数据并且必须再次删除它更好。
this manual page上的第5.9.5段对此进行了介绍。