PostgreSQL 表名大小寫敏感度:處理大小寫不符
使用 PostgreSQL 資料庫時,使用者可能會遇到從其他資料庫(例如 MSSQL Server)遷移表時表存取不一致的問題。一個常見的問題源自於 PostgreSQL 中表名的大小寫敏感度。
在 PostgreSQL 中,未加引號的表名是不區分大小寫的。這意味著存取名為 "STD_TYPE_CODES" 的表等同於 "STD_TYPE_codes" 或 "std_type_codes"。但是,為表名加引號會使其區分大小寫,導致使用不同大小寫存取表時發生錯誤。
為了解決這個問題,有幾個方法:
1. 使用未加引號的表名
為了避免大小寫敏感性問題,建議使用未加引號的名稱建立和存取表。這可確保表名被視為不區分大小寫,並且無論使用者的輸入如何,都與預期的大小寫相符。
2. 一致地使用加引號的表名
如果使用加引號的表名,則必須始終使用正確的大小寫來指定它們。例如,如果表格建立為 "STD_TYPE_CODES",則存取它必須始終使用 "STD_TYPE_CODES",而不是 "std_type_codes" 或 "Std_Type_Codes"。
3. 轉換現有表格
要修正大小寫不符的現有表,請使用 ALTER TABLE 指令。例如,要將表格 "FOO" 轉換為小寫,請使用:
<code class="language-sql">ALTER TABLE "FOO" RENAME TO "foo"</code>
4. 修改資料庫轉儲
從 MSSQL Server 遷移表到 PostgreSQL 時,可以修改資料庫轉儲以確保表名與 PostgreSQL 的大小寫敏感性規則一致。這可以透過以下方式完成:
以上是PostgreSQL 如何處理表名中的大小寫?的詳細內容。更多資訊請關注PHP中文網其他相關文章!