Имам някои таблици, които трябва да актуализирам каскадно в postgresql, но не мисля, че мога да използвам външни ключове, за да го направя.
Простата версия е, че имам 4 таблици с обекти и 2 таблици за обвързване:
Table X Table A Table A-B Table B Table B-C Table C
------- -------- --------- ------- --------- -------
x_id a_id x_id b_id x_id c_id
... ... a_id ... b_id ...
... ... b_id ... c_id ...
... ...
В моите обвързващи таблици имам PK за всички id полета (x_id, a_id, b_id), (x_id, b_id, c_id).
Ако актуализирам b_id в таблица A-B, искам да актуализира b_id в таблица B-C, където x_id съвпада.
Ако се опитам да създам ограничение за външен ключ, то ми казва
"няма уникално ограничение, съответстващо на дадени ключове за референтна таблица..."
Разбирам, че не прави това, защото (x_id,b_id) не е уникално ограничение, но не може да бъде, защото ще имам множество c_id със същите b_id и x_id.
Надяваме се, че това има смисъл.
Единственият начин да направите това с тригери ли е?