relación primera minúsculas minusculas mayúsculas mayusculas mayuscula letra ignorar existe error entre distinguir distingue diferenciar buscar sql postgresql identifier case-sensitive case-insensitive

primera - sql distingue entre mayúsculas y minúsculas



¿Los nombres de las columnas PostgreSQL distinguen entre mayúsculas y minúsculas? (3)

Tengo una tabla db decir, persons en Postgres dictadas por otro equipo que tiene un nombre de columna decir, "first_Name" . Ahora estoy tratando de usar PG commander para consultar esta tabla en este nombre de columna.

select * from persons where first_Name="xyz";

Y solo regresa

ERROR: la columna "first_Name" no existe

¿No estoy seguro de si estoy haciendo algo tonto o hay una solución alternativa a este problema que me falta?


Los nombres de las columnas que son mayúsculas o minúsculas tienen que ser dobles en postgres sql. Entonces la mejor convención será seguir todos los casos pequeños con guión bajo.


Para citar la documentación :

Las palabras clave y los identificadores sin comillas no distinguen entre mayúsculas y minúsculas. Por lo tanto:

UPDATE MY_TABLE SET A = 5;

puede escribirse de manera equivalente como:

uPDaTE my_TabLE SeT a = 5;

Al citar un identificador, se distingue entre mayúsculas y minúsculas, mientras que los nombres sin comillas siempre se pliegan en minúsculas:

UPDATE "my_table" SET "a" = 5; // equivalent to the above examples


Todos los identificadores (incluidos los nombres de columna) que no están doblemente citados se doblan a minúsculas en PostgreSQL. Los nombres de columna que se crearon con comillas dobles y, por lo tanto, letras mayúsculas retenidas (y / u otras violaciones de sintaxis) deben ser citadas por el resto de su vida. Entonces, , los nombres de las columnas de PostgreSQL distinguen entre mayúsculas y minúsculas:

SELECT * FROM persons WHERE "first_Name" = ''xyz'';

También arregla las comillas dobles incorrectas alrededor de ''xyz'' . Los valores (literales de cadena) están entre comillas simples .

Lee el manual aquí.

Mi consejo permanente es utilizar nombres legales en minúsculas exclusivamente, por lo que no es necesario hacer doble cita.