sql >> Databáze >  >> RDS >> PostgreSQL

Nerozlišují názvy funkcí v PostgreSQL velká a malá písmena?

Názvy funkcí jsou identifikátory (jako názvy tabulek, názvy polí), stejná pravidla o rozlišování velkých a malých písmen platí pro všechny.

Stručně řečeno, identifikátory nerozlišují malá a velká písmena, pokud nejsou uvedeny v uvozovkách .

Přesněji řečeno, neuvedený identifikátor je interně převeden na malá a poté se pokusí o shodu rozlišující malá a velká písmena. To vám může znepříjemnit život (tj. skryté chyby, promarněné hodiny), obvykle pokud jste při definování tabulky nebo funkce použili identifikátory v uvozovkách.

Proto byste měli vždy definovat svou vlastní konvenci pojmenování a držet se jí.

Obecná rada:používejte pro identifikátory vždy malá písmena a buďte šťastní.

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. 7 bezplatných nástrojů pro vytváření diagramů databází pro zaneprázdněné datové lidi

  2. Práce s databázovými stroji MySQL

  3. Sloupec 'Mary' neexistuje

  4. Naformátujte číslo jako procento v Oracle