[英]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.