Postgres - rule na widoku
Kebeb - 27-06-2007 00:04
Postgres - rule na widoku
Witajcie Nie do końca wiem, jak w łatwy sposób założyć rule on update, on delete na widoku. ( Podczas normalizacji tabeli rozbiłem ją na dwie: * do 1, chcę usunąć starą a w miejsce jej dać widok z selectem oraztymi rulami, żeby w kodzie aplikacji nic nie zmnieniać, gdyż tam jest straszny bigos).
I tu jest problem: Gdy np. w aplikacji mam:
update ala set wlosy = czerwone where oczy = niebieskie
to nie za bardzo wiem jak wylapac warunek "where" w tym rule zalozonym na nowym widoku. Gdyż nie zawsze wiem, po czym te updaty lecą.
Jeżeli to nie jest jasne to dla przykladu w pseudojezyku:
nieznormalizowana tabela A id imie nazwisko data_ur fotka
Wrzucam te dane do dwóch tabelek:
tabela B id imie nazwisko data_ur
tabela C id id_b fotka
Usuwam tabelę A, dodaje widok A jako join B z C i tu chciałbym dać rule: Z insertem nie ma problemu:
CREATE RULE a_add TO a DO INSTEAD i tu insert do A i insert do B
Ale co z update i delete (bo nie wiem nigdy jakie warunki ktoś dał w where ).??? ?????????
Dziękuję serdecznie za pomoc Kuba Dziedzina
=?ISO-8859-2?Q?Pawe=B3_Matejski?= - 27-06-2007 00:04
Kebeb wrote: > Witajcie > Nie do końca wiem, jak w łatwy sposób założyć rule on update, on > delete na widoku. ( Podczas normalizacji tabeli rozbiłem ją na dwie: * > do 1, chcę usunąć starą a w miejsce jej dać widok z selectem oraz tymi > rulami, żeby w kodzie aplikacji nic nie zmnieniać, gdyż tam jest > straszny bigos). > > I tu jest problem: > Gdy np. w aplikacji mam: > > update ala set wlosy = czerwone where oczy = niebieskie > > to nie za bardzo wiem jak wylapac warunek "where" w tym rule zalozonym > na nowym widoku. Gdyż nie zawsze wiem, po czym te updaty lecą.
A po co chcesz wyłapywać? Masz psaudorelacje OLD, w której będą wiersze wybrane przy pomocy warunków z zapytania usera.
-- P.M.
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
[PostgreSQL] - jak =?ISO-8859-2?Q?zabezpieczy=E6_interesy_tw?==?ISO-8859-2?Q?=F3rcy_systemu_=3F=3F=3F?=
postgresql - int/int
postgresql Select count(*) czy raczej Select count(ID)
[PostgreSQL] jak =?ISO-8859-2?Q?pobra=E6_warto=B6=E6_zwracan?==?ISO-8859-2?Q?=B1_przez_funkcj=EA=3F?=
[postgresql] INSERT OR UPDATE - jak =?ISO-8859-2?Q?b=EAdzie_na?==?ISO-8859-2?Q?jlepiej=3F?=
[postgresql] kilka =?ISO-8859-2?Q?rekord=F3w_subquery_jako_?==?ISO-8859-2?Q?string?=
[PostgreSQL] Jak =?ISO-8859-2?Q?po=B3=B1czy=E6_funkcje_z_w?==?ISO-8859-2?Q?idokiem?=
Postgres - replikcja master-master
Dopasowanie do "najlepszego" dopasowania :) [ PostgreSQL]
Problemy z =?ISO-8859-2?Q?instalacj=B1_PostgreSQL_na_syste?==?ISO-8859-2?Q?mach_Windows?=
zanotowane.pldoc.pisz.plpdf.pisz.pllubiatowo.xlx.pl
Cytat
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona |
|