オプションから始めましょう:
- pl/pgsqlおよびsql
- pl / perl、pl / pythonu、およびpl / tcl
- その他のpls
これらの主要なカテゴリには、長所と短所の違いがあります。彼らはまた、あなたが物事を進める方法にも違いがあります。 pl / rubyのような外部plの大きな弱点の1つは、それらが維持されない場合、後で問題が発生する可能性があることです。
PL/PGSQLおよびSQL
このような場合、変更を再帰共通テーブル式を使用したSQLクエリとして表現できる可能性があります。次に、sqlを使用するか、わずかな手続き型サポートが必要な場合は、それを追加してpl/pgsqlを使用します。これは通常、私がこれに取り組む方法です。
PL / Perl、PL / TCL、PL / PythonU
RubyコードをPythonまたはPerlに移植して、これらの言語のPLバリエーションを使用することもできます。これらのPLは、PostgreSQLのコアディストリビューションの一部として広く使用および保守されています。彼らは消えることはありません。これにより、ロジックがどのように移動するかについての透明性が向上します。
PL / Pythonの重要な制限の1つは、信頼できるモードがないことです。pl/ perlで発生する問題の1つは、信頼できるモードは外部モジュールへのアクセスがないことを意味することです。