- PostgreSQL 9.1
- Partitioned tables
- tbl_master
- tbl_slave1 (наследует хозяин)
- tbl_slave2 (наследует хозяин)
- Yii framework 1.1.10
Может быть, кто-то может поделиться своим опытом о секционированной таблице Yii + PostgreSQL. Часть PostgreSQL с секционированными таблицами, проверками и триггерами отлично работает, но я не могу заставить Yii полюбить эти таблицы ..
Проблема в том, что при вставке в многораздельную таблицу PostgreSQL дает 0 rows affected
, и я не могу понять, как это исправить. Модель Yii считает, что новая запись не сохраняется (но это так), и $Model->save();
возвращает false, поэтому afterSave()
не работает и так далее.
Все другие методы, такие как ->find()
или ->findAll()
, работают хорошо. Даже если я обновлю только что сохраненную запись, бросьте yii, все в порядке, и меня тоже выполнят afterSave
. Проблема только в ->save()
части. Обновление работает, потому что у меня есть триггер только при вставке новых строк.
Я использую триггер для разделения новых данных по таблицам. Может быть, мне нужно изменить триггер, чтобы postgres знал, что я пересылаю новые данные в slave
таблицу, а не master
?
Еще кое-что. Я добавил первичный ключ в таблицу master
, чтобы модель Yii (CActiveRecord) не выдавала ошибок в таблице без pk. Я знаю, что документация этого не предполагает, но у меня это работает. Просто пытаюсь дать полную картину моей ситуации.
Спасибо!
RETURN NEW;
в триггере вместоRETURN NULL;
. И теперь у меня есть две одинаковые строки - одна вmaster
и вторая вslave
таблице. Поэтому мне нужно добавить триггерAFTER INSERT
для очистки таблицыmaster
(DELETE FROM ONLY master
). Мысли вслух ... - но это сработает. - person briiC   schedule 10.05.2012