2013-01-08 41 views
54

Chcę napisać funkcję z pl/pgsql Używam PostgresEnterpreis Manager v3 i używając powłoki, aby utworzyć funkcję, ale w powłoce muszę zdefiniować typ zwrotu. Jeśli nie zdefiniuję typu zwrotu, nie jestem w stanie utworzyć funkcji.Jak utworzyć funkcję, która nic nie zwraca

W jaki sposób można utworzyć funkcję bez wyniku zwracania, tj. Funkcję, która tworzy nową tabelę?

Odpowiedz

87

Zastosowanie RETURNS void jak poniżej:

CREATE FUNCTION stamp_user(id int, comment text) RETURNS void AS $$ 
    #variable_conflict use_variable 
    DECLARE 
     curtime timestamp := now(); 
    BEGIN 
     UPDATE users SET last_modified = curtime, comment = comment 
      WHERE users.id = id; 
    END; 
$$ LANGUAGE plpgsql; 
+10

Dla innych czytelników, trzeba pamiętać, że dyrektywa '# variable_conflict' ma * nic * zrobić z resztą odpowiedź. To tylko część przykładowej funkcji; Jedynym ważnym bitem jest "ZWROTY nieważne". Poza tym, nie wiedziałem, że PL/PgSQL ma pragmy. –

+0

Oto pokrewna sprawa wykorzystująca '# variable_conflict': http://dba.stackexchange.com/a/105828/3684 –

Powiązane problemy