避免表名和关键字psql之间发生冲突
我需要在postgreSQL中创建一个表,如下所示,但是“USER”是一个关键字,我得到了一个错误 顺便说一句,既然我写的是“用户”而不是“用户”,它就不能工作吗避免表名和关键字psql之间发生冲突,sql,postgresql,Sql,Postgresql,我需要在postgreSQL中创建一个表,如下所示,但是“USER”是一个关键字,我得到了一个错误 顺便说一句,既然我写的是“用户”而不是“用户”,它就不能工作吗 首先,不要使用保留字作为标识符。将其更改为类似于Users的内容非常简单 其次,默认情况下,Postgres通过降低标识符的大小写来坚持标识符不区分大小写。因此,User和User和User是同一件事——它们都与关键字/保留字冲突 关于标识符的所有规则在中都有很好的解释 您可以通过转义名称来坚持区分大小写来解决此问题: CREATE
首先,不要使用保留字作为标识符。将其更改为类似于
Users
的内容非常简单
其次,默认情况下,Postgres通过降低标识符的大小写来坚持标识符不区分大小写。因此,User
和User
和User
是同一件事——它们都与关键字/保留字冲突
关于标识符的所有规则在中都有很好的解释
您可以通过转义名称来坚持区分大小写来解决此问题:
CREATE TABLE "User" ( . . .
但我强烈反对这样做。有无数种方法可以构造标识符,而不必重用几百个保留字。只是在命名上要有一点创意。谢谢您的解释,以及良好实践提示:)
CREATE TABLE "User" ( . . .