為什麼表名或列名不能以數字開頭?
在 PostgreSQL 中建立物件(例如表格或欄位)時,有必要為他們取名字。這些名稱必須滿足一定的條件,包括不能以數字字元開頭的限制。
限制原因
此約定源自於原始 SQL 標準,它指定識別碼(包括物件名稱)必須以字母或底線開頭。此設計決策主要是為了簡化解析。
解析挑戰
如果允許使用數字字元作為標識符開頭,則會在 SQL 語法中產生歧義。例如,在以下 SELECT-list子句中:
SELECT 2e2 + 3.4 FROM ...
不清楚「2e2」是指表名稱還是數值表達式,而「3.4」可能會被解釋為數值或表名「3」和列名"4".
結論
強制執行此限制可確保物件名稱和其他SQL元素之間的明確區別,從而使解析過程更加有效率且明確。雖然這看起來像是一個小限制,但它有助於保持 SQL 語言的一致性和易用性。要解決此限制,可以將名稱括在雙引號中,如範例所示:
CREATE TABLE "15909434_user" ( ... )
以上是為什麼 PostgreSQL 表名或列名不能以數字開頭?的詳細內容。更多資訊請關注PHP中文網其他相關文章!