postgresql - 无法在 PostgreSQL 中创建名为 'user' 的数据库表

标签 postgresql hibernate identifier reserved-words

似乎 PostgreSQL 不允许创建名为“user”的数据库表。但是 MySQL 将允许创建这样的表。

那是因为它是关键词吗?但是 Hibernate 无法识别任何问题(即使我们设置了 PostgreSQLDialect)。

最佳答案

user 是保留字,将保留字用于标识符(表、列)通常不是一个好主意。

如果你坚持这样做,你必须将表名放在双引号中:

create table "user" (...);

但是您总是在引用表格时需要使用双引号。此外,表名是区分大小写的。 "user" 是与 "User" 不同的表名。

如果您想省去很多麻烦,请使用不同的名称。 用户, user_account, ...

有关引用标识符的更多详细信息,请参阅手册:http://www.postgresql.org/docs/current/static/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIERS

关于postgresql - 无法在 PostgreSQL 中创建名为 'user' 的数据库表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22256124/

相关文章:

PHP变量和查询

sql - 重新编号重复项,使它们独一无二

python - 如何在 Django 1.11 中使用 settings_local.py 覆盖 settings.py

mysql - 使用 Spring MVC 将 MySQL 中的旧值与新数据连接起来

java - Hibernate 在 PostgreSQL 中使用驼峰格式的主键

php - Last_insert_id 的效率如何?

postgresql - Postgres : Sending parameter to JSONB field in a function

postgresql - 如何在 Npgsql 中删除表中的一行?

java - GAE : 30-40 Second Queries to Cloud SQL

c++ - 没有名字的类(class)