Обсуждение: Parenthesis in Queries

Поиск
Список
Период
Сортировка

Parenthesis in Queries

От
"Oudenhoven, Timothy L"
Дата:
Is there a way to turn off the need to use parenthesis in queries for table names etc.  I have seen in some
documentationexamples that parenthesis are not used in the queries.  In my install of postgre 7.4 I get an error when I
donot use them. 

Example with parenthesis which works in my build
select * from portal."User"

where I would like to use
select * from portal.User

Thanks
Tim


Re: Parenthesis in Queries

От
Shachar Shemesh
Дата:
Oudenhoven, Timothy L wrote:

>Is there a way to turn off the need to use parenthesis in queries for table names etc.  I have seen in some
documentationexamples that parenthesis are not used in the queries.  In my install of postgre 7.4 I get an error when I
donot use them. 
>
>Example with parenthesis which works in my build
>select * from portal."User"
>
>where I would like to use
>select * from portal.User
>
>Thanks
>Tim
>
>
>
>
Yes, sortof.

Just define all of your table and column names to be in lowercase.
Postgresql is sortof SQL standard here, in that names in quotes are
case-sensitive, and names without quotes give the illusion of case
insensitivity by turning them all into lowercase.

The deviation from the standard is because the standard dictates
"UPPERCASE". If you were to try the same thing on Oracle, my advice
would be "define all of your table and column names to be uppercase".

             Shachar

--
Shachar Shemesh
Lingnu Open Source Consulting
http://www.lingnu.com/


Re: Parenthesis in Queries

От
Martin Marques
Дата:
El Dom 02 May 2004 17:15, Oudenhoven, Timothy L escribió:
> Is there a way to turn off the need to use parenthesis in queries for table
> names etc.  I have seen in some documentation examples that parenthesis are
> not used in the queries.  In my install of postgre 7.4 I get an error when
> I do not use them.
>
> Example with parenthesis which works in my build
> select * from portal."User"
>
> where I would like to use
> select * from portal.User

Does are not parenthesis, but doble quotes.

When you don't put quotes on the relations name, PG will lower case the name,
and there is where you get the error.

Solution: Don't use quoted relation names ever. This includes especially when
you create tables, becuase if you do this:

CREATE TABLE tab1 (
"ID"    SERIAL,
"User"    VARCHAR(30)
);

tab1.ID will not exist, becuase PG interprets it as tab1.id (see the case
difference), but will recognize pretty well tab1."ID".


--
 08:35:02 up 5 days, 13:57,  2 users,  load average: 0.63, 0.73, 0.75
-----------------------------------------------------------------
Martín Marqués        | select 'mmarques' || '@' || 'unl.edu.ar'
Centro de Telematica  |  DBA, Programador, Administrador
             Universidad Nacional
                  del Litoral
-----------------------------------------------------------------