POSTGRESS: "name" - хитрое ключевое слово? Зачем? Дайте ссылку на оф.документацию про это, плиз!

интернет программирование sql postgresql postgress

Что это? Зачем это?

Берём любую таблицу без столбца "name". Как показали опыты - последнее важно.
Пишем два запроса:
1. SELECT name FROM table;
2. SELECT a.name FROM table AS a;
Если кто-то пояснит мне принципиальную разницу между ними с точки зрения языка запросов - сразу плюсую!

Ниже "==========" - вывод по каждому из запросов. Если не верите и не лень - можете воспроизвести у себя.

Очень интересно посмотреть на описание этой фичи, особенно порадуюсь официальной документации про фичу, сам там не нашёл. Кому это нужно, зачем, как это используется в мирных или не очень целях? Дайте, плиз, линки по сабжу!

==================================================================
[root@www /]# psql --version
psql (PostgreSQL) 8.4.9

DB=> \d register
Table "public.register"
Column | Type | Modifiers
---------------+-----------------------------+--------------------------------------------------------------------
id_register | integer | not null default nextval('register_id_register_seq'::regclass)
id_meeting | integer | not null
id_user | integer | not null
insert_date | timestamp without time zone | not null default ('now'::text)::timestamp without time zone
remind | boolean | not null default false
cancel_reason | integer |
Indexes:
"register_pkey" PRIMARY KEY, btree (id_register)
"register_id_meeting_key" UNIQUE, btree (id_meeting, id_user)

DB=> select name from fms_register;
ERROR: column "name" does not exist
СТРОКА 1:select name from fms_register;

cis=> select a.name from fms_register as a;
name
---------------------------------------------------
(891,67,1283,"2012-09-19 14:24:00.822585",f,)
(892,67,841,"2012-09-25 16:53:22.17663",f,)
(893,67,1131,"2012-10-01 16:29:32.852963",f,)
(894,67,55,"2012-10-02 13:36:37.59033",f,)
(32,147,24,"2012-01-13 16:24:24.548804",t,)
(33,150,24,"2012-01-17 11:39:55.406435",t,)
(34,150,141,"2012-01-18 13:05:21.050154",t,)
(35,152,25,"2012-01-18 13:07:31.820963",t,)
(36,152,24,"2012-01-18 13:08:22.069917",f,)
--More--

Примечание:
Ant1973, это про другое совсем фраза!
Про то, что если у меня в table есть столбец "end", то мне не стоит делать SELECT end FROM table, мне больше повезёт с SELECT "end" FROM table.

Примечание:
Кэп.О.,
И всё-таки, где бы почитать про само это ключевое-неключевое слово NAME, зачем оно как минимум в версии 8.4.9. вот такое вот странное реализовано, для чего используется?
Ответы:
В документации на этот счет есть такая дивная фраза:
"As a general rule, if you get spurious parser errors for commands that contain any of the listed key words as an identifier you should try to quote the identifier to see if the problem goes away."
>SQL distinguishes between reserved and non-reserved key words. According to the standard, reserved key words are the only real key words; they are never allowed as identifiers. Non-reserved key words only have a special meaning in particular contexts and can be used as identifiers in other contexts.


11 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.