Funkcja kasująca dane |
Funkcja kasująca dane |
22.01.2005, 14:48:29
Post
#1
|
|
Grupa: Zarejestrowani Postów: 897 Pomógł: 40 Dołączył: 16.12.2003 Skąd: Warszawa Ostrzeżenie: (0%) |
Witam!
Zaczynam działać z postgresem i natrafiłem na pewien problem... Mam utworzoną tabelę:
Chciałbym, żeby przy wykonywaniu INSERT'ów automatycznie kasowane były wpisy starsze niż 1 dzień... Tu mam problem... Tworzę do tego procedurę:
I funkcja del_older: Kod BEGIN (Zapytanie SQL jest dobre)DELETE FROM users WHERE timer < '1 day'::interval; END; Niestety przy wstawianiu danych do tabeli 'users' otrzymuję błąd: Cytat ERROR: control reached end of trigger procedure without RETURN CONTEXT: PL/pgSQL function "del_older" Próbowałem wstawić return wzorując się na manualu postgresa, jak i stworzyć na jego podstawie prawidłową funkcję, ale nic mi nie wychodzi Będę wdzięczny za pomoc... -------------------- how many SEO experts does it take to change a light bulb,lightbulb,light,bulb,lamp,lighting,switch,sex,xxx
5-Reasons-why-you-should-NEVER-fix-a-computer-for-free |
|
|
22.01.2005, 16:46:46
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 1 467 Pomógł: 13 Dołączył: 22.02.2003 Ostrzeżenie: (0%) |
po pierwsze, po co 'for each row'. Nie znam się na triggerach, ale tutaj masz dokładnie o count() - 1 razy za często wykonywaną operację.
a co do zapytania. Wydaje mi się, że Twoja funkcja powinna coś zwracać (cokolwiek, poczytaj w dokumentacji triggerów co mają zwracać). |
|
|
22.01.2005, 21:24:46
Post
#3
|
|
Grupa: Zarejestrowani Postów: 897 Pomógł: 40 Dołączył: 16.12.2003 Skąd: Warszawa Ostrzeżenie: (0%) |
No fakt, 'for each row' raczej niepotrzebne. Dzięki.
Kombinuję z tym returnem, ciężko mi to idzie, póki co udało mi się zrobić to na regułach (rules):
Jeżeli ktoś będzie wiedział, jak zrobić sprawę na triggerach, będę wdzięczny. --UPDATE I po problemie... Poprawna funkcja del_older(): Kod CREATE OR REPLACE FUNCTION del_older() RETURNS trigger AS '
BEGIN DELETE FROM "users" WHERE ("timer" < (NOW() - \'1 day\'::interval)); RETURN NULL; END; ' LANGUAGE plpgsql; Ten post edytował czachor 22.01.2005, 21:51:48 -------------------- how many SEO experts does it take to change a light bulb,lightbulb,light,bulb,lamp,lighting,switch,sex,xxx
5-Reasons-why-you-should-NEVER-fix-a-computer-for-free |
|
|
Wersja Lo-Fi | Aktualny czas: 28.04.2024 - 14:46 |