PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Alternativen zu defektem PL/Ruby:Konvertieren Sie eine Lagerjournaltabelle

Beginnen wir mit Ihren Optionen:

  • pl/pgsql und sql
  • pl/perl, pl/pythonu und pl/tcl
  • Andere bitte

Diese Hauptkategorien haben unterschiedliche Stärken und Schwächen. Sie unterscheiden sich auch darin, wie Sie die Dinge angehen. Eine der großen Schwächen von externen pls wie pl/ruby ist, dass Sie später ein Problem haben können, wenn sie nicht gewartet werden.

PL/PGSQL und SQL

In diesen Fällen können Sie Ihre Änderungen wahrscheinlich als SQL-Abfrage mit einem rekursiven allgemeinen Tabellenausdruck ausdrücken. Dann können Sie sql verwenden oder, wenn Sie etwas prozedurale Unterstützung benötigen, das hinzufügen und pl/pgsql verwenden. So gehe ich normalerweise vor.

PL/Perl, PL/TCL und PL/PythonU

Möglicherweise können Sie Ihren Ruby-Code auch nach Python oder Perl portieren und die PL-Varianten dieser Sprachen verwenden. Diese PLs werden häufig verwendet und als Teil der Core-Distribution von PostgreSQL verwaltet. Sie gehen nicht weg. Dies würde Ihnen eine bessere Transparenz darüber ermöglichen, wie sich die Logik ändert.

Eine wesentliche Einschränkung von PL/Python ist, dass es keinen vertrauenswürdigen Modus hat, und ein Problem, auf das Sie bei pl/perl stoßen werden, ist, dass der vertrauenswürdige Modus keinen Zugriff auf externe Module bedeutet.