此問題基於this answer。要理解SQL/DDL查詢中的一個句子
下列句子是什麼意思?
最後,不要使用混合大小寫 標識符。盡一切小寫, ,所以你不必引用它們。
這是否意味着我應該將諸如CREATE TABLE,USER_ID和NOT NULL之類的命令更改爲小寫? - 它不能,因爲它會違反常見的命名約定。
此問題基於this answer。要理解SQL/DDL查詢中的一個句子
下列句子是什麼意思?
最後,不要使用混合大小寫 標識符。盡一切小寫, ,所以你不必引用它們。
這是否意味着我應該將諸如CREATE TABLE,USER_ID和NOT NULL之類的命令更改爲小寫? - 它不能,因爲它會違反常見的命名約定。
不,我認爲這位先生提到使用全部小寫字母標識符,例如表,列等名稱。這應該對您使用的CREATE TABLE等命令沒有影響。
Marc
我不知道他爲什麼這麼說。在SQL Server中,至少,標識符的情況並不重要。也許它在其他DBMS系統中有效?
在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
等等都沒有標識,他們是保留字。
您可以在任何情況下使用它們。
您以驚人的速度持續「產生」問題,而不是試圖應付PostgreSQL文檔(順便說一下,這篇文章的寫作和組織很好)。 – 2009-07-29 12:40:27
@Milen:文件沒有的部分是評價。我通過評估好的代碼和糟糕的代碼來學習。 - 如果我看到有些混亂,我問。我想明白,不要忽視。 – 2009-07-29 12:56:24