1

Temat: Funkcja zwracająca tabelę

Mam przykładowo tabelę kolorowanka:

id | kolor | ilość
-------------------
1 | r         | 3
2 | g        | 4
3 | b        | 1
...|...        |

---------------------------------------------------
Piszę funkcję:

create or replace function()
returns setof kolorowanka
as
$$ select *
     from kolorowanka;
$$
language sql;

Działa OK.

--------------------------------------------
Jak powinienem napisać funkcję, abym mógł w niej wstawić takiego selecta ?


create or replace function()
returns setof kolorowanka  + ???????
as
$$ select *,
              ilość*10 as koszt
    from kolorowanka;
$$
language sql;


???????????????

Ostatnio edytowany przez tomek (2013-10-02 10:06:23)

2

Odp: Funkcja zwracająca tabelę

najszybciej zrobic to tak

create or replace function()
returns setof kolorowanka
as
$$ select id,kolor,ilość*10 as koszt
     from kolorowanka;
$$
language sql;

Jeśli takie rozwiązanie Cie nie zadowala to musisz stworzyć nowy typ danych zobacz polecenie CREATE TYPE w postgresql i podpiąć go jako typ zwracany pod swoją funkcję

Ostatnio edytowany przez c_michal (2013-10-02 13:24:39)

3

Odp: Funkcja zwracająca tabelę

Można by też utworzyć widok z ilosc*10 i w funkcji odwoływać się "returns setof widok" , "Select *.." do widoku, a nie do tabeli

Ostatnio edytowany przez adamleon (2013-10-02 14:15:10)