sql >> Databasteknik >  >> RDS >> PostgreSQL

Hur definierar man postgres-funktioner i Rails och vad är deras omfattning och livslängd?

När en funktion i PostgreSQL väl har skapats kvarstår den permanent . Liksom andra objekt finns det i ett schema och hittas bara om detta schema finns i search_path av din nuvarande session.

I en allmän databas skulle du skapa dina funktioner i standardvärdet schema public . I en mer sofistikerad installation kan du ha ett dedikerat schema för funktioner eller ett dedikerat schema per användare. search_path skulle ställas in i enlighet därmed.

Använd CREATE OR REPLACE FUNCTION ... istället för bara CREATE FUNCTION ... så att du kan byta ut kroppen av en befintlig funktion (utan att ändra IN eller OUT-typ). Mer om detta i denna senaste svar av @Pavel Stehule på dba.SE .

Var medveten om de lite olika effekterna av tidszons namn och förkortningar eller numeriska förskjutningar. Relaterade frågor/svar:
Tidszonsnamn med identiska egenskaper ger olika resultat när de tillämpas på tidsstämpel
PostgreSQL – hur för att återge datum i en annan tidszon?




  1. Skapa ett index på en MySQL-kolumn baserat på längden dess innehåll?

  2. anropa enkel databasprocedur med Slick 3.0

  3. Salesforce SOQL från SQL Server

  4. Hur kan jag ta bort dubbletter av rader?