Lad os starte med dine muligheder:
- pl/pgsql og sql
- pl/perl, pl/pythonu og pl/tcl
- Andre tak
Disse hovedkategorier har forskelle i styrker og svagheder. De har også forskelle i, hvordan du går om tingene. En af de store svagheder ved eksterne pls som pl/ruby er, at hvis de ikke bliver vedligeholdt, kan du få et problem senere.
PL/PGSQL og SQL
I disse tilfælde kan du sandsynligvis udtrykke dine ændringer som en SQL-forespørgsel med rekursivt fælles tabeludtryk. Så kan du bruge sql eller, hvis du har brug for lidt proceduremæssig støtte, tilføje det og bruge pl/pgsql. Det er normalt sådan, jeg griber det an.
PL/Perl, PL/TCL og PL/PythonU
Du kan muligvis også overføre din Ruby-kode til Python eller Perl og bruge PL-variationerne af disse sprog. Disse PL'er er meget brugt og vedligeholdt som en del af kernedistributionen af PostgreSQL. De skal ikke væk. Dette vil give dig bedre gennemsigtighed i, hvordan logikken bevæger sig.
En væsentlig begrænsning ved PL/Python er, at den ikke har nogen betroet tilstand, og et problem, du vil støde på med pl/perl, er, at tillidstilstand betyder, at der ikke er adgang til eksterne moduler.