Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PostgreSQL]Trigger w PostgreSQL
Forum PHP.pl > Forum > Przedszkole
patong
Witam

jest to dla mnie nowy temat dlatego pytam bo się nie znam.

Mam baze ogłoszeń i m.in. kolumny:

start_time (timestamp with timezone)
end_time (timestamp with timezone)
status (integer)


I potrzebuje zrobić taki wyzwalacz żeby w momencie osiągnięcia end_time zmienić status na np. 0
Podejrzewam że jest to pewnie z 3-4 linijki kodu ale nie znalazłem prostego tutka ani opisu.

dlatego z góry dzięki kto pomoże

pozdrawiam
Crozin
Wyzwalacze wyzwalane są przy okazji jakiegoś zdarzenia, np. dodania nowego rekordu albo usunięcia starego. Tak więc musisz skorzystać z czegoś innego. Prawdopodobnie najprostszym rozwiązaniem będzie stworzenie jakiegoś prostego daemona działającego w nieskończonej pętli, który pobiera sobie informacje o tym które rekordy zdezaktualizują się w ciągu najbliższych przykładowo pięciu minut po czym zmieni ich stan (odczekując jeszcze tych kilka sekund od momentu pobrania informacji). Gdy kolejka rekordów do aktualizacji skończy się odczeka kilka sekund (do czasu upłynięcia tych pięciu minut) po czym cały proces rozpocznie się od nowa.

PS. Jak rozumiem dynamiczne określanie statusu poprzez porównanie aktualnej daty i daty w end_time nie wchodzi w grę z jakiś konkretnych powodów?
patong
Cytat(Crozin @ 20.04.2011, 21:41:08 ) *
Wyzwalacze wyzwalane są przy okazji jakiegoś zdarzenia, np. dodania nowego rekordu albo usunięcia starego. Tak więc musisz skorzystać z czegoś innego. Prawdopodobnie najprostszym rozwiązaniem będzie stworzenie jakiegoś prostego daemona działającego w nieskończonej pętli, który pobiera sobie informacje o tym które rekordy zdezaktualizują się w ciągu najbliższych przykładowo pięciu minut po czym zmieni ich stan (odczekując jeszcze tych kilka sekund od momentu pobrania informacji). Gdy kolejka rekordów do aktualizacji skończy się odczeka kilka sekund (do czasu upłynięcia tych pięciu minut) po czym cały proces rozpocznie się od nowa.

PS. Jak rozumiem dynamiczne określanie statusu poprzez porównanie aktualnej daty i daty w end_time nie wchodzi w grę z jakiś konkretnych powodów?


słuszne pytanie, tak chciałem zrobić na początku i prawdopodobnie do tego wrócę, choć wydaje mi się to nie tyle nieoptymalne co prymitywne...
No i dochodzi do tego jeszcze kwestia taka że statusów mogę mieć kilka - np. ogłoszenie zablokowane, zarchiwizowane itp. stąd jedna kolumna 'status' a niej integer.

Dzięki za pomoc smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.