Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
避免表名和关键字psql之间发生冲突_Sql_Postgresql - Fatal编程技术网

避免表名和关键字psql之间发生冲突

避免表名和关键字psql之间发生冲突,sql,postgresql,Sql,Postgresql,我需要在postgreSQL中创建一个表,如下所示,但是“USER”是一个关键字,我得到了一个错误 顺便说一句,既然我写的是“用户”而不是“用户”,它就不能工作吗 首先,不要使用保留字作为标识符。将其更改为类似于Users的内容非常简单 其次,默认情况下,Postgres通过降低标识符的大小写来坚持标识符不区分大小写。因此,User和User和User是同一件事——它们都与关键字/保留字冲突 关于标识符的所有规则在中都有很好的解释 您可以通过转义名称来坚持区分大小写来解决此问题: CREATE

我需要在postgreSQL中创建一个表,如下所示,但是“USER”是一个关键字,我得到了一个错误

顺便说一句,既然我写的是“用户”而不是“用户”,它就不能工作吗


首先,不要使用保留字作为标识符。将其更改为类似于
Users
的内容非常简单

其次,默认情况下,Postgres通过降低标识符的大小写来坚持标识符不区分大小写。因此,
User
User
User
是同一件事——它们都与关键字/保留字冲突

关于标识符的所有规则在中都有很好的解释

您可以通过转义名称来坚持区分大小写来解决此问题:

 CREATE TABLE "User" ( . . .

但我强烈反对这样做。有无数种方法可以构造标识符,而不必重用几百个保留字。只是在命名上要有一点创意。

谢谢您的解释,以及良好实践提示:)
 CREATE TABLE "User" ( . . .