Ограничения имени столбца таблицы Postgres?

Я сделал это в PSQL:

CREATE TABLE IF NOT EXISTS apiss (skey TEXT, time INTEGER, user TEXT, ip TEXT);

я получил

ERROR:  syntax error at or near "user" LINE 1: ...BLE IF NOT EXISTS apiss (skey TEXT, time INTEGER, user TEXT,...

Я делаю:

CREATE TABLE IF NOT EXISTS apiss (skey TEXT, time INTEGER, userd TEXT, ip TEXT);

Оно работает.
Обратите внимание на userd вместо пользователя.

Существуют ли ограничения на имена столбцов, которые могут иметь таблицы? (postgresql v9.1.3)

Ответы на вопрос(2)

Решение Вопроса

Вот хорошая таблица зарезервированных слов в PostgreSQL:
http://www.postgresql.org/docs/current/static/sql-keywords-appendix.html

Вероятно, лучше всего избегать использования этих слов в качестве имен таблиц или столбцов.
Альтернатива, однако, заключается в том, чтобы заключить идентификатор в двойные кавычки, например:

CREATE TABLE IF NOT EXISTS apiss (
    skey TEXT, 
    time INTEGER, 
    "user" TEXT, 
    ip TEXT);
 05 июн. 2012 г., 16:19
Перефразируя Yoda, «если вы используете цитируемые идентификаторы, они навсегда будут доминировать в вашей судьбе». Идентификаторы в кавычках - правильная боль в использовании, особенно в сочетании с не заключенными в кавычки. Как сказал ОП, лучше избегать их полностью.

В моей компании мне пришлось сканировать всю базу данных на наличие зарезервированных слов. Я решил задачу с помощью

select * from pg_get_keywords()
 01 сент. 2015 г., 16:31
хорошо для разных версий

Ваш ответ на вопрос