sql >> Databasteknik >  >> RDS >> PostgreSQL

Är funktionsnamn i PostgreSQL skiftlägesokänsliga?

Funktionsnamn är identifierare (som tabellnamn, fältnamn), samma regler om skiftlägeskänslighet gäller alla.

Kort sagt, identifierare är okänsliga för skiftlägen, såvida de inte citeras .

Mer exakt, en identifierare utan citattecken konverteras internt till gemener och sedan försöker man matcha fall. Detta kan göra ditt liv surt (dvs. dolda buggar, bortkastade timmar), vanligtvis om du använde citattecken när du definierade tabellen eller funktionen.

Det är därför du alltid bör definiera din egen namnkonvention och hålla fast vid den.

Allmänna råd:använd alltid gemener för identifierare och var nöjd.

db=# select now();
              now
-------------------------------
 2011-06-10 16:33:06.588401-03
(1 row)

db=# select Now();
              now
-------------------------------
 2011-06-10 16:33:08.066818-03
(1 row)

db=# select "now"();
              now
-------------------------------
 2011-06-10 16:33:14.543381-03
(1 row)

db=# select "Now"();
ERROR:  function Now() does not exist
LINE 1: select "Now"();
               ^
HINT:  No function matches the given name and argument types. You might need to add explicit type casts.


  1. Hur får jag det aktuella året med SQL på Oracle?

  2. Introducerar ny funktion:Always On Availability Group

  3. Skapa ett SQL Server-agentschema med T-SQL

  4. Använd NEWSEQUENTIALID() för att skapa en inkrementerande GUID i SQL Server