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

Wie definieren Sie Postgres-Funktionen in Rails und wie sind deren Umfang und Lebensdauer?

Einmal erstellt, wird eine Funktion in PostgreSQL permanent gespeichert . Wie andere Objekte lebt es in einem Schema und wird nur gefunden, wenn dieses Schema im search_path Ihrer aktuellen Sitzung.

In einer Universaldatenbank würden Sie Ihre Funktionen im Standard erstellen Schema public . In einem anspruchsvolleren Setup haben Sie möglicherweise ein dediziertes Schema für Funktionen oder ein dediziertes Schema pro Benutzer. Der search_path entsprechend gesetzt werden.

Verwenden Sie CREATE OR REPLACE FUNCTION ... statt nur CREATE FUNCTION ... Sie können also den Körper einer vorhandenen Funktion ersetzen (ohne die IN- oder OUT-Typen zu ändern). Mehr dazu in diesem aktuellen Antwort von @Pavel Stehule auf dba.SE .

Beachten Sie die leicht unterschiedlichen Auswirkungen von Zeitzonen-Namen und Abkürzungen oder numerische Offsets. Verwandte Fragen/Antworten:
Zeitzonennamen mit identischen Eigenschaften führen zu unterschiedlichen Ergebnissen, wenn sie auf den Zeitstempel angewendet werden
PostgreSQL - wie Datum in einer anderen Zeitzone darstellen?