處理 PostgreSQL 表和列名稱中的區分大小寫
PostgreSQL 對錶名和列名的處理取決於它們是否被引用。 不帶引號的識別碼(例如 myTable
)不區分大小寫,這表示 MyTable
、mytable
和 MYTABLE
都引用同一個物件。 帶引號的標識符(如 "MyTable"
)區分大小寫。
這種差異通常會在遷移資料庫時造成問題,特別是從 MSSQL 等系統遷移資料庫時,在這些系統中,區分大小寫的處理方式可能會有所不同。 例如,如果匯入名為 STD_TYPE_CODES
的表,並且您嘗試將其查詢為 std_type_codes
,您將收到錯誤,因為 PostgreSQL 將它們解釋為不同的物件。
解:
<code class="language-sql">SELECT * FROM "STD_TYPE_CODES";</code>
但是,這對很多桌子來說很麻煩。
PostgreSQL 的隱式小寫: PostgreSQL 在內部自動將不含引號的識別碼轉換為小寫。 因此,STD_TYPE_CODES
、std_type_codes
和 HeLLo
都被視為 "std_type_codes"
。
最佳實踐:一致命名:為了避免將來出現問題,請在建立新表和視圖時始終使用不帶引號的小寫名稱。
重新命名現有表: 對於大小寫不一致的現有表,請使用 ALTER TABLE
:
<code class="language-sql">ALTER TABLE "FOO" RENAME TO foo;</code>
以上是如何解決 PostgreSQL 中表名和列名的大小寫敏感問題?的詳細內容。更多資訊請關注PHP中文網其他相關文章!