Можем ли мы использовать «имя» в качестве имени столбца в PostgreSQL? - PullRequest
0 голосов
/ 09 мая 2018

Можем ли мы использовать «имя» в качестве имени столбца в PostgreSQL?

Я попробовал, и таблица успешно создана. Будут ли ошибки при выполнении какой-либо операции с таблицей или данными таблицы?

Является ли имя зарезервированным ключевым словом?

ОБНОВЛЕНИЕ: пробовал это

select * from pg_get_keywords()

и обнаружил, что «имя» является незарезервированным. Все еще хотите подтвердить, могу ли я использовать это имя?

1 Ответ

0 голосов
/ 09 мая 2018

https://www.postgresql.org/docs/current/static/datatype-character.html#DATATYPE-CHARACTER-SPECIAL-TABLE

«имя» - это внутренний тип для имен объектов

Так что да - вы можете:

t=# create table "b@dPract!c3" ("name" text, "date" timestamptz);
CREATE TABLE
t=# insert into "b@dPract!c3" values('wrong',now());
INSERT 0 1
t=# select * from "b@dPract!c3";
 name  |             date
-------+-------------------------------
 wrong | 2018-05-09 08:38:53.612212+01
(1 row)

ты должен это сделать? Конечно, нет! именование столбцов с именами типов данных - это легко, но очень плохая практика

...