[pgsql] Wykonanie triggera po =?ISO-8859-2?Q?zako=F1czeniu_tra?==?ISO-8859-2?Q?nsakcji?=
ethanak - 30-01-2006 10:31
[pgsql] Wykonanie triggera po =?ISO-8859-2?Q?zako=F1czeniu_tra?==?ISO-8859-2?Q?nsakcji?=
Witam
Mam taki drobiazg i nie bardzo wiem jak to zrobić :(
Krótko (i w skrócie):
create table plik ( nazwa_pliku text unique not null, id serial unique not null);
create trigger usun_plik after delete on plik for each row execute procedure usunplik();
Funkcja usunplik (pisana w C) po prostu usuwa plik o nazwie w danym rekordzie.
I teraz:
begin; delete from plik where id = costam; .... rollback;
.... a pliku już nie ma :(
Czegoś nie doczytałem czy to nierealne? Postgres wersja 7.2 (na razie)
ethanak
Marek Horodyski - 30-01-2006 10:31
=?iso-8859-2?Q?Re:_=5Bpgsql=5D_Wykonanie_triggera_po_zako=F1c zeniu_transa?==?iso-8859-2?Q?kcji?= Użytkownik "ethanak" <ethanak@setia.nie.przepadam.za.spamem.pl> napisał w wiadomości news:drd8cl$456$1@opal.futuro.pl... > Witam > > Mam taki drobiazg i nie bardzo wiem jak to zrobić :( > > Krótko (i w skrócie): > > create table plik ( > nazwa_pliku text unique not null, > id serial unique not null); > > create trigger usun_plik after delete on plik > for each row execute procedure usunplik(); > > Funkcja usunplik (pisana w C) po prostu usuwa plik o nazwie w danym > rekordzie. > > I teraz: > > begin; > delete from plik where id = costam; > ... > rollback; > > ... a pliku już nie ma :( >
Plik nie jest elementem relacyjnej bazy danych. Przywrocone rekordy tak.
Marek Horodyski
=?ISO-8859-2?Q?Pawe=B3_Matejski?= - 30-01-2006 10:31
ethanak wrote: > Witam > > Mam taki drobiazg i nie bardzo wiem jak to zrobić :( > > Krótko (i w skrócie): > > create table plik ( > nazwa_pliku text unique not null, > id serial unique not null); > > create trigger usun_plik after delete on plik > for each row execute procedure usunplik(); > > Funkcja usunplik (pisana w C) po prostu usuwa plik o nazwie w danym > rekordzie.
> Czegoś nie doczytałem czy to nierealne? > Postgres wersja 7.2 (na razie)
Nierealne - to jest właśnie różnica między trzymaniem plików w bazie a osobno.
-- P.M.
ethanak - 30-01-2006 10:31
On 2006-01-27 15:56, Marek Horodyski wrote: [...] > Plik nie jest elementem relacyjnej bazy danych.
Hm... muszę się nad tym głębiej zastanowić ;)
> Przywrocone rekordy tak.
Właśnie dlatego chciałem aby trigger (albo jakaś inna magiczna czynność) wykonał się _po_ commicie (kiedy żadnych rekordów przywracać już nie będę).
ethanak
ethanak - 30-01-2006 10:31
On 2006-01-27 16:52, Paweł Matejski wrote: [...] > Nierealne - to jest właśnie różnica między trzymaniem plików w bazie a > osobno. >
No to taka odpowiedź mi wystarczy, chociaż nie powiem abym był specjalnie szczęśliwy :)
Dzięki
ethanak
=?ISO-8859-2?Q?Pawe=B3_Matejski?= - 30-01-2006 10:31
ethanak wrote: > On 2006-01-27 16:52, Paweł Matejski wrote: > [...] > >>Nierealne - to jest właśnie różnica między trzymaniem plików w bazie a >>osobno. > > No to taka odpowiedź mi wystarczy, chociaż nie powiem abym był > specjalnie szczęśliwy :)
Zawsze można coś przykombinować. Np. jeśli nie musisz natychmiast kasować plików, w transakcji oznaczaj tylko rekordy do skasowania, a kasowanie rób w osobnym procesie wywoływanym co pewien czas. W tym skrypcie kasuj najpierw plik, potem rekord.
-- P.M.
ethanak - 30-01-2006 10:31
On 2006-01-27 19:02, Paweł Matejski wrote: [...] > Zawsze można coś przykombinować. Np. jeśli nie musisz natychmiast > kasować plików, w transakcji oznaczaj tylko rekordy do skasowania, a > kasowanie rób w osobnym procesie wywoływanym co pewien czas. W tym > skrypcie kasuj najpierw plik, potem rekord. >
No właśnie poprzednio kombinowałem coś w tym stylu, że wsadzałem w transakcji pliki do oddzielnej tabeli "skasowane" i w nocy z crona leciałem po tej tabeli (tabel z plikami jest kilka więc oznaczanie nie miało raczej sensu, a aż tak dużo tego nie ma żeby się w ciągu 24 godzin dysk zapchał).
Tylko strasznie nie lubię crona do takich rzeczy angażować :(
Zresztą - będę jeszcze kombinować.
ethanak
Piotr 'piter' Hlawski - 30-01-2006 10:32
ethanak wrote:
> Tylko strasznie nie lubię crona do takich rzeczy angażować
Dlaczego? Cron to całkiem przyjemny wynalazek.
-- ..:: Piter // phlawski@cut_this_crap.gmail.com // gg: 4534287 ::. Chuck Norris zaskarżył NBC o to, że nazwa Prawo i Porządek są zastrzeżonymi nazwami jego lewej i prawej nogi.
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
[sql][pgsql] zapytanie sql
Wydajność baz danych w zależności od poziomu izolacji ANSI/ISO
Która z baz: [PGSQL] czy [MySQL] będzie lepsza w takim zastosowaniu (masowe UPDATE)
Czy zna (obsługuje) ktoś program Iso Draw ?
[PGSQL] Pole "timestamp" a wyciagniecie tylko danych z danego roku.
[pgsql] Wybieranie z dwoch tabel - z drugiej tylko jeden rekord
Oracle Application Express na Oracle Database 10g Express Edition- wykonalne?
[PGSQL] Pobieranie w jednym zapytaniu danych z dwoch tabel
PgSQL odzyskanie zawartosci jednej tabeli z kopii - pilne
[PGSQL] Strumienie np. dla ostrzeżeń w procedurach Pl Pg SQL
zanotowane.pldoc.pisz.plpdf.pisz.plnumervin.keep.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 |
|