web-dev-qa-db-ja.com

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);

できます。
userではなくuserdに注意してください。

テーブルが持つことができる列名に制限はありますか? (postgresql v9.1.3)

34
resting

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);
66
bernie

私の会社では、データベース全体で予約語をスキャンする必要がありました。私はの助けを借りてタスクを解決しました

select * from pg_get_keywords()
29
R13e