Нека започнем с вашите опции:
- pl/pgsql и sql
- pl/perl, pl/pythonu и pl/tcl
- Други моля
Тези основни категории имат разлики в силните и слабите страни. Те също имат разлики в начина, по който подхождате към нещата. Една от големите слабости на външни pls като pl/ruby е, че ако те не се поддържат, може да имате проблем по-късно.
PL/PGSQL и SQL
В тези случаи вероятно можете да изразите промените си като SQL заявка с рекурсивен израз на обща таблица. След това можете да използвате sql или, ако имате нужда от лека процедурна поддръжка, добавете това и използвайте pl/pgsql. Обикновено така подхождам към това.
PL/Perl, PL/TCL и PL/PythonU
Може също така да можете да пренесете своя Ruby код към Python или Perl и да използвате PL вариантите на тези езици. Тези PL се използват широко и се поддържат като част от основната дистрибуция на PostgreSQL. Те не си отиват. Това ще ви позволи по-добра прозрачност за това как се движи логиката.
Едно значително ограничение на PL/Python е, че той няма надежден режим и един проблем, който ще срещнете с pl/perl е, че надеждният режим означава липса на достъп до външни модули.