[Pgsql-ayuda] Nuke aun no anda

Alvaro Herrera Munoz alvherre@dcc.uchile.cl
Thu, 22 May 2003 10:26:28 -0400


On Thu, May 22, 2003 at 10:11:45AM -0300, Martin Marques wrote:
[...]

> Attribute "default_theme" not found

> La cuestion es que el campo existe, pero se llama "Default_Theme", y la 
> unica forma que PostgreSQL tome el campo es llamandolo entre comillas 
> dobles (asi):
> 
> SELECT "Default_Theme" FROM nuke_config
> 
> Porque es que no encuentra el campo si no le pongo las comillas dobles?

Porque Postgres hace conversion a minusculas de todos los
identificadores (nombres de tablas, nombres de campos, nombres de
funciones, etc), a menos que vengan entre comillas dobles.

Lo que es importante es ser consistente con el uso de las comillas
dobles (es decir, las usas o dejas de usar tanto en la creacion de la
tabla como en las sentencias DML).  Si la creacion de tabla es

CREATE TABLE nuke_config ("Default_Theme" text);

entonces debes hacer
SELECT "Default_Theme" from nuke_config;
y esto no funciona:
SELECT Default_Theme from nuke_config;


En cambio si haces

CREATE TABLE nuke_config (Default_Theme text);
basta con

SELECT Default_Theme from nuke_config;

Pero esto tambien funciona:
SELECT default_theme from nuke_config;

Ojo que en los primeros casos Default_Theme esta con las mayusculas --
lo unico que cambia son las comillas.

-- 
Alvaro Herrera (<alvherre[@]dcc.uchile.cl>)
"La felicidad no es maņana. La felicidad es ahora"