Roep PL/pgSQL-functie meerdere keren op met SELECT-resultaten

Ik heb een PL/pgSQL-functie die één invoerparameter vereist, die de primaire sleutel is van de tabel waarop deze werkt. Ik noem het als volgt:

select myFunction('0001');

Vervolgens worden berekeningen uitgevoerd op de gegevens in de rij die wordt aangeduid met '0001' van een bepaalde tabel en wordt een UPDATE uitgevoerd.

Hoe kan ik de functie herhaaldelijk oproepen voor elke primaire sleutel die door een query wordt geretourneerd? Iets als het volgende:

select myFunction(select ID from theTable);
2

1 antwoord

Misschien moet je de functie als volgt noemen:

select myfunction(id) from thetable;

id being the pk of the table.

3
toegevoegd
Zorg er terzijde voor dat elke functie die gegevens wijzigt VLUCHTIG is (standaard). postgresql.org/docs/9.1/interactive/xfunc-volatility.html
toegevoegd de auteur kgrittn, de bron