- PostgreSQL 9.1
- 分区表
- tbl_master
- tbl_slave1(继承自主表)
- tbl_slave2(继承自主表)
- Yii框架1.1.10
也许有人可以分享一下关于Yii + PostgreSQL分区表的经验。 使用分区表的PostgreSQL,检查和触发器都很好用,但我无法让Yii喜欢这些表。
问题在于,当插入分区表时,PostgreSQL会给出“0行受影响”的提示,而我无法找到解决方法。
Yii模型认为新记录没有保存(但实际上已经保存了),$Model->save();
返回false,因此afterSave()
也不起作用等等。
所有其他方法如->find()
或->findAll()
都能正常工作。即使我只是通过Yii更新刚刚保存的记录,一切都还好,我也能执行afterSave
。问题只出现在->save()
部分。
更新可以正常工作,因为我只在插入新行时触发触发器。
我正在使用触发器将新数据拆分为多个表。也许我需要修改触发器,以便PostgreSQL知道我正在将新数据转发到slave
表而不是master
表?
还有一件事。我在master
表中添加了主键,以便Yii模型(CActiveRecord)不会因为没有主键的表而抛出错误。我知道文档没有建议这样做,但我用这种方法使它工作了。只是想给出我情况的大致描述。
谢谢!
RETURN NEW;
而不是RETURN NULL;
。现在我有两行完全相同的数据 - 一行在master
表中,另一行在slave
表中。因此,我需要添加一个触发器AFTER INSERT
来清除master
表 (DELETE FROM ONLY master
)。自言自语.. - 但这会起作用。 - briiC