簡體   English   中英

哪些是在Postgresql查詢中定義“強制與否”的標准?

[英]Which are the criteria for defining " as mandatory or not in a Postgresql query?

我開始使用Postgresql,我轉換了MS SQL DB,但我無法理解為什么

SELECT * FROM MYTABLE

不起作用

SELECT * FROM "MYTABLE" does

此外,從另一台機器,連接到相同的DB我可以運行

SELECT * FROM MYTABLE --(without ")

所有測試均使用PGAdmin III Windows客戶端完成。 Postgresql安裝在Linux服務器上。

這是一個PG新手問題,我希望你能提供幫助。

默認情況下,postgresql會將SQL語句中的不帶引號的標識符轉換為小寫; 這與不區分大小寫的匹配不同。

因此,如果您已經定義了一個名為“TABLE”的表,那么您需要將其稱為“TABLE”,因為只有TABLE將被解釋為“table”。

很簡單,最好的策略是避免在postgresql中使用大寫標識符:目錄和我見過的大多數示例使用由下划線(the_thing)分隔的小寫單詞。 您可以使用混合大小寫標識符,但在這種情況下,您有兩種選擇:

  • 您可以在語句中使用混合大小寫標識符,並接受它們在實際存儲時全部折疊為小寫。
  • 你可以承諾一直引用它們,並且始終與案例保持一致。

這些按優先順序概述了我的建議:堅持小寫風格,混合案例並接受折疊,堅持混合案例並處理各地的引用標識符。

PS不要讓我開始調用表“表”。 我假設那只是一個(愚蠢的)例子。 這也是一個不好的例子,因為“select * from table”會產生語法錯誤,所以很明顯,這不是你實際嘗試運行的語句。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM