Обсуждение: Why can't I .........

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

Why can't I .........

От
mbenzid@yahoo.de (Mounir Benzid)
Дата:
-- do a join between two databases within the same installation.

... where db1.table1.userid = db2.table2.userid 


-- use labels to name columns in this way

... select col1 userid, col2 name from ...  (instead of using AS)


-- do an update with full referenced colomns

... update table1 set table1.col1=value

???

Thank you in advance!
mo


Re: Why can't I .........

От
"Josh Berkus"
Дата:
Mounir,

> -- do a join between two databases within the same installation.
>
> ... where db1.table1.userid = db2.table2.userid

Because this is not supported on PostgreSQL.  There are a number of
reasons, and it may never be supported because there are drawbacks to
allowing databases to reference each other (mainly security).


> -- use labels to name columns in this way
>
> ... select col1 userid, col2 name from ...  (instead of using AS)

Because AS is the ANSI SQL 92 standard.  And we like standards.

> -- do an update with full referenced colomns
>
> ... update table1 set table1.col1=value

Because UPDATES, per the SQL 92 standard, are on one table only.  Thus
any refenced columns *must* belong to that table, and if so, why name
it?

-Josh Berkus


______AGLIO DATABASE SOLUTIONS___________________________
                                       Josh Berkus
  Complete information technology      josh@agliodbs.com
   and data management solutions       (415) 565-7293
  for law firms, small businesses        fax 621-2533
    and non-profit organizations.      San Francisco

Вложения

Re: Why can't I .........

От
Tom Lane
Дата:
"Josh Berkus" <josh@agliodbs.com> writes:
>> -- use labels to name columns in this way
>> 
>> ... select col1 userid, col2 name from ...  (instead of using AS)

> Because AS is the ANSI SQL 92 standard.  And we like standards.

Actually, SQL92 says that AS is optional.  However, Postgres contains a
lot of extensions to SQL92, and some of them produce parse ambiguities
if AS is optional.  So we require it.  This isn't going to change, as
it would require ripping out a lot of useful stuff.
        regards, tom lane