Postgresql
postgres:恢復數據庫時我真的需要使用 Collat e 和 Ctype 嗎?
需要在 Linux 中導入一個 Windows postgres 導出的數據庫。在 windows 中,它的列表如下:
Name | Owner | Encoding | Collate | Ctype | Access privileges -------------+----------+----------+--------------------+--------------------+----------------------- the_db | postgres | UTF8 | Hebrew_Israel.1255 | Hebrew_Israel.1255 |
在恢復之前,我真的需要使用相同的 collate 和 ctype 創建數據庫嗎?我已經測試過了,我可以通過創建一個新的數據庫來導入,這將使它使用它的預設值:
Name | Owner | Encoding | Collate | Ctype | Access privileges -----------+----------+----------+-------------+-------------+----------------------- the_db | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
- 恢復成功。但是,恐怕因為應用程序,以後與db互動時不會導致任何錯誤。
- 紳士你有什麼考慮?
主要考慮的是,如果您使用
ORDER BY
字元串數據類型的列,則結果將根據數據庫排序規則進行排序,除非您COLLATE
為列定義指定顯式子句或使用ORDER BY
. 如果您的使用者期望根據希伯來語排序規則對結果進行排序,他們可能會不高興。要在 Unix 上獲得希伯來語排序規則,請使用 locale
he_IL.utf8
。