Po utworzeniu funkcja w PostgreSQL jest utrwalana na stałe . Podobnie jak inne obiekty, żyje w schemacie i można go znaleźć tylko wtedy, gdy ten schemat znajduje się w search_path
bieżącej sesji.
W bazie danych ogólnego przeznaczenia utworzyłbyś swoje funkcje w domyślnym schemat
public
. W bardziej wyrafinowanej konfiguracji możesz mieć dedykowany schemat dla funkcji lub dedykowany schemat na użytkownika. search_path
zostanie odpowiednio ustawiony.
Użyj CREATE OR REPLACE FUNCTION ...
zamiast po prostu CREATE FUNCTION ...
dzięki czemu można zastąpić korpus istniejącej funkcji (bez zmiany typów IN lub OUT). Więcej na ten temat w tym ostatnim odpowiedz @Pavel Stehule na dba.SE
.
Zwróć uwagę na nieco inne skutki nazw stref czasowych i skróty lub przesunięcia numeryczne. Powiązane pytania/odpowiedzi:
Nazwy stref czasowych z identycznymi właściwościami dają różne wyniki po zastosowaniu do znacznika czasu
PostgreSQL - jak renderować datę w innej strefie czasowej?