Ограничения имени столбца таблицы 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 вместо user.
существуют некоторые ограничения на имена столбцов в таблице??
(postgressql 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);
в моей компании, мне пришлось сканировать всю базу данных для зарезервированных слов. Я решил задачу с помощью
select * from pg_get_keywords()