1

这个问题是基于这个答案

下面的句子是什么意思?

最后,不要使用大小写混合的标识符。一切都小写,所以你不必引用它们。

这是否意味着我应该将 CREATE TABLE、USER_ID 和 NOT NULL 等命令更改为小写?- 它不能,因为它违反了常见的命名约定。

4

3 回答 3

3

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 TABLEetc. 不是标识符,它们是保留字。

你可以在任何你喜欢的情况下使用它们。

于 2009-07-29T12:32:28.763 回答
2

不,我认为这位先生提到使用所有小写标识符,例如表、列等名称。这应该对您使用的 CREATE TABLE 等命令没有影响。

马克

于 2009-07-29T12:30:32.913 回答
1

我不知道他为什么这么说。至少在 SQL Server 中,标识符的大小写无关紧要。也许它在其他 DBMS 系统中也存在?

于 2009-07-29T12:31:23.240 回答