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

¿Por qué a PostgreSQL no le gustan los nombres de tablas en MAYÚSCULAS?

ponga el nombre de la tabla entre comillas dobles si desea que Postgres conserve las mayúsculas y minúsculas para los nombres de las relaciones.

Citar un identificador también hace que se distinga entre mayúsculas y minúsculas, mientras que los nombres sin comillas siempre se doblan a minúsculas . Por ejemplo, PostgreSQL considera que los identificadores FOO, foo y "foo" son iguales, pero "Foo" y "FOO" son diferentes de estos tres y entre sí. (El doblado de nombres sin comillas a minúsculas en PostgreSQL es incompatible con el estándar SQL, que dice que los nombres sin comillas se deben doblar a mayúsculas. Por lo tanto, foo debería ser equivalente a "FOO" y no a "foo" de acuerdo con el estándar. Si desea escribir aplicaciones portátiles a las que se le aconsejó siempre citar un nombre en particular o nunca citarlo .)

de documentos (énfasis mío)

ejemplo con comillas:

t=# create table "UC_TNAME" (i int);
CREATE TABLE
t=# \dt+ UC

t=# \dt+ "UC_TNAME"
                      List of relations
 Schema |   Name   | Type  |  Owner   |  Size   | Description
--------+----------+-------+----------+---------+-------------
 public | UC_TNAME | table | postgres | 0 bytes |
(1 row)

ejemplo sin comillas:

t=# create table UC_TNAME (i int);
CREATE TABLE
t=# \dt+ UC_TNAME
                      List of relations
 Schema |   Name   | Type  |  Owner   |  Size   | Description
--------+----------+-------+----------+---------+-------------
 public | uc_tname | table | postgres | 0 bytes |
(1 row)

Entonces, si creó una tabla con comillas, no debe omitir las comillas al consultarla. Pero si omitió las comillas al crear el objeto, el nombre se dobló a minúsculas y, por lo tanto, estará en mayúsculas en la consulta; de esta manera, "no lo notará".