PostgreSQL似乎不允许创建名为"user"的数据库表.但是MySQL将允许创建这样一个表.
这是因为它是一个关键词吗?但是Hibernate无法识别任何问题(即使我们设置了PostgreSql方言).
PostgreSQL似乎不允许创建名为"user"的数据库表.但是MySQL将允许创建这样一个表.
这是因为它是一个关键词吗?但是Hibernate无法识别任何问题(即使我们设置了PostgreSql方言).
user
是一个保留字,使用保留字作为标识符(表、列)通常不是一个好主意.
如果坚持这样做,则必须将表名用双引号引起来:
create table "user" (...);
但是,在引用表时,需要使用双引号.此外,表名也区分大小写."user"
与"User"
是不同的表名.
如果你想给自己省go 很多麻烦,就换个名字吧.users
, user_account
, ...
有关引用标识符的更多详细信息,请参见手册:http://www.postgresql.org/docs/current/static/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIERS