Postgres: Relación no existe error


14

Usé pg_restore para cargar mi postgres db con un archivo de volcado. Me conecté a mi base de datos con mi usuario:

sudo -u arajguru psql dump

select current_user;
 current_user 
--------------
 arajguru

Ahora pude ver todas las tablas recién creadas:

dump=> \dt
               List of relations
 Schema |       Name        | Type  |  Owner   
--------+-------------------+-------+----------
 public | Approvals         | table | arajguru
 public | Approvers         | table | arajguru
 public | Conditions        | table | arajguru
 public | Entities          | table | arajguru
 public | EntityDefinitions | table | arajguru
 public | Projects          | table | arajguru
 public | Rules             | table | arajguru
 public | run_history       | table | arajguru
(8 rows)

Pero cuando trato de disparar una consulta select *, me dio este error:

dump=> select * from Approvals;
ERROR:  relation "approvals" does not exist
LINE 1: select * from Approvals;

¿Cuál puede ser la razón de este error? Por favor ayuda.

Respuestas:


24

Creó sus tablas con comillas dobles, y ahora los nombres distinguen entre mayúsculas y minúsculas.

Como se documenta en el manual "Approvals" y Approvalsson dos nombres diferentes.

Ahora que creó los nombres de las tablas en mayúsculas y minúsculas, debe usar siempre esas temidas comillas dobles.

select * 
from "Approvals";

Como consejo general: nunca use comillas dobles en SQL.


1
¡Gracias! Trabajando ahora. ¿Cómo sabías que las tablas se crearon con comillas dobles?
Ayushi Rajguru

1
@AyushiRajguru: porque la "Lista de tablas" las muestra con mayúsculas / minúsculas. La única forma de lograrlo es usar comillas dobles (como se documenta en el manual )
a_horse_with_no_name

ahh, tuve lo mismo con los registros vs "registros" gracias youuuuu <3
csomakk
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.