这个问题是基于这个答案。
下面的句子是什么意思?
最后,不要使用大小写混合的标识符。一切都小写,所以你不必引用它们。
这是否意味着我应该将 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"
。
要返回(即对, not1
发出查询),您需要引用它:"MYTABLE"
"mytable"
SELECT *
FROM "MYTABLE";
---
1
CREATE TABLE
etc. 不是标识符,它们是保留字。
你可以在任何你喜欢的情况下使用它们。
不,我认为这位先生提到使用所有小写标识符,例如表、列等名称。这应该对您使用的 CREATE TABLE 等命令没有影响。
马克
我不知道他为什么这么说。至少在 SQL Server 中,标识符的大小写无关紧要。也许它在其他 DBMS 系统中也存在?