1. ホーム
  2. postgresql

[解決済み] PostgreSQL で 'user' という名前のデータベーステーブルを作成できない

2022-05-14 01:48:10

質問

PostgreSQL では 'user' という名前のデータベーステーブルを作成することができないようです。しかし、MySQLではそのようなテーブルを作成することができます。

それはキーワードだからでしょうか?しかし、Hibernateは(PostgreSQLDialectを設定しても)問題を特定することができません。

どのように解決するのですか?

user は予約語であり、通常、識別子(テーブル、カラム)に予約語を使用するのは良いアイデアではありません。

どうしてもそうしたいのであれば、テーブル名を二重引用符で囲む必要があります。

create table "user" (...);

しかし、その後、あなたは 常に は二重引用符で囲む必要があります。さらに、テーブル名は大文字と小文字が区別されます。 "user" とは異なるテーブル名です。 "User" .

手間を省きたいなら、別の名前を使いましょう。 users , user_account , ...

引用符で囲まれた識別子に関する詳細は、マニュアルに記載されています。 http://www.postgresql.org/docs/current/static/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIERS