PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Comment définissez-vous les fonctions postgres dans Rails et quelle est leur portée et leur durée de vie ?

Une fois créée, une fonction dans PostgreSQL est persistante permanente . Comme d'autres objets, il vit à l'intérieur d'un schéma et n'est trouvé que si ce schéma est dans le search_path de votre session en cours.

Dans une base de données à usage général, vous créeriez vos fonctions dans la valeur par défaut schéma public . Dans une configuration plus sophistiquée, vous pouvez avoir un schéma dédié pour les fonctions ou un schéma dédié par utilisateur. Le search_path serait défini en conséquence.

Utilisez CREATE OR REPLACE FUNCTION ... au lieu de simplement CREATE FUNCTION ... vous pouvez donc remplacer le corps d'une fonction existante (sans changer les types IN ou OUT). Plus d'informations à ce sujet dans ce récent réponse de @Pavel Stehule sur dba.SE .

Soyez conscient des effets légèrement différents des noms de fuseau horaire et abréviations ou décalages numériques. Questions/réponses associées :
Les noms de fuseaux horaires avec des propriétés identiques donnent des résultats différents lorsqu'ils sont appliqués à l'horodatage
PostgreSQL - comment afficher la date dans un fuseau horaire différent ?