本题基于this answer .
下面这句话是什么意思?
Finally, don't use mixed case identifiers. Do everything lowercase, so you don't have to quote them.
这是否意味着我应该将 CREATE TABLE、USER_ID 和 NOT NULL 等命令更改为小写字母? - 不能,因为这违反了通用的命名约定。
最佳答案
在 PostgreSQL
中,不带引号的标识符被转换为小写:
CREATE TABLE "MYTABLE" (id INT NOT NULL);
CREATE TABLE "mytable" (id INT NOT NULL);
INSERT
INTO "MYTABLE"
VALUES (1);
INSERT
INTO "mytable"
VALUES (2);
SELECT *
FROM mytable;
---
2
SELECT *
FROM MYTABLE;
---
2
这两个查询都将返回 2
,因为它们是针对 "mytable"
而不是 "MYTABLE"
发出的。
要返回 1
(即针对 "MYTABLE"
发出查询,而不是 "mytable"
),您需要引用它:
SELECT *
FROM "MYTABLE";
---
1
CREATE TABLE
等不是标识符,它们是保留字。
您可以在任何情况下使用它们。
关于sql - 理解有关 SQL/DDL 查询中 case 的句子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1199868/