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

Les noms de fonction dans PostgreSQL sont-ils insensibles à la casse ?

Les noms de fonction sont des identifiants (comme les noms de table, les noms de champ), les mêmes règles sur la sensibilité à la casse s'appliquent à tous.

En bref, les identifiants sont insensibles à la casse, sauf s'ils sont entre guillemets .

Plus précisément, un identifiant sans guillemets est converti en interne en minuscule puis une correspondance sensible à la casse est tentée. Cela peut vous rendre la vie misérable (c'est-à-dire bogues cachés, heures perdues), généralement si vous avez utilisé des identifiants entre guillemets lors de la définition de la table ou de la fonction.

C'est pourquoi vous devez toujours définir votre propre convention de dénomination et vous y tenir.

Conseil général :utilisez toujours des minuscules pour les identifiants, et soyez heureux.

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.