sql >> Base de Datos >  >> RDS >> PostgreSQL

¿Los nombres de funciones en PostgreSQL no distinguen entre mayúsculas y minúsculas?

Los nombres de funciones son identificadores (como nombres de tablas, nombres de campos), las mismas reglas sobre la distinción entre mayúsculas y minúsculas se aplica a todos.

En resumen, los identificadores no distinguen entre mayúsculas y minúsculas, a menos que se cite .

Más precisamente, un identificador sin comillas se convierte internamente a minúsculas y luego se intenta una coincidencia sensible al caso. Esto puede hacer que su vida sea miserable (es decir, errores ocultos, horas desperdiciadas), generalmente si usó identificadores entre comillas al definir la tabla o la función.

Es por eso que siempre debe definir su propia convención de nomenclatura y atenerse a ella.

Consejo general:use siempre minúsculas para los identificadores y sea feliz.

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.