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);
さらに、Postgresはすべてのテーブルで内部使用するためにシステム列名を予約します:「すべてのテーブルには、システムによって暗黙的に定義される複数のシステム列があります。したがって、これらの名前をユーザー定義列の名前として使用することはできません。」
https://www.postgresql.org/docs/current/ddl-system-columns.html