Podría ser las propias cotizaciones que son todo el problema. Tuve un problema similar y fue debido a las comillas alrededor del nombre de la columna en la declaración CREATE TABLE. Tenga en cuenta que no hubo problemas de espacio en blanco, solo las comillas causaron problemas.
La columna parecía que se llamaba anID
pero realmente se llamaba "anID"
. Las comillas no aparecen en las consultas típicas, por lo que es difícil de detectar (para este novato de Postgres). Este es el postgres 9.4.1
algo más de detalle:
Haciendo postgres=# SELECT * FROM test;
dio:
anID | value
------+-------
1 | hello
2 | baz
3 | foo (3 rows)
pero se trata de seleccionar sólo la primera columna SELECT anID FROM test;
dio lugar a un error:
ERROR: column "anid" does not exist
LINE 1: SELECT anID FROM test;
^
Solo mirando los nombres de las columnas no ayudó: postgres=# \d test;
Table "public.test"
Column | Type | Modifiers
--------+-------------------+-----------
anID | integer | not null
value | character varying |
Indexes:
"PK on ID" PRIMARY KEY, btree ("anID")
pero en pgAdmin si hace clic en el nombre de la columna y mira en el panel SQL se rellena con:
ALTER TABLE test ADD COLUMN "anID" integer;
ALTER TABLE test ALTER COLUMN "anID" SET NOT NULL;
y he aquí están los quoutes todo el nombre de la columna. De manera que, en última instancia postgres=# select "anID" FROM test;
funciona bien:
anID
------
1
2
3
(3 rows)
mismo moral, no hace uso de comillas.
¿Qué ves si entras en psql y escribes "\ d table_name"? –
¿Cómo se creó la columna? ¿Fue creado como '" Foo "' o '" Foo "' o similar? –
@PaulTomblin Estoy accediendo usando phpPGmyadmin, no tengo acceso a la línea de cmd. – nulltorpedo