一尘不染

无法在PostgreSQL中创建名为“用户”的数据库表

hibernate

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

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


阅读 384

收藏
2020-06-20

共1个答案

一尘不染

user 是保留字,通常不建议使用保留字作为标识符(表,列)。

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

create table "user" (...);

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

如果您想节省很多麻烦,请使用其他名称。usersuser_account,…

可以在手册中找到有关带引号的标识符的更多详细信息:http :
//www.postgresql.org/docs/current/static/sql-syntax-lexical.html#SQL-SYNTAX-
IDENTIFIERS

2020-06-20