2013-09-24 62 views
2

我使用PostgreSQL 9.1如何在postgresql中更改數據庫的「字符類型」?

我給自己定的整理和數據庫Greek_Greece.1253的字符類型,我想將其更改爲UTF8

要改變我應該使用this的整理,對?

但是我該如何改變字符類型?

感謝

編輯

我彪萊特℃,而不是UTF8。我想將整理和字符類型更改爲C

+0

可能重複http://stackoverflow.com/questions/380924/how-can -i-change-database-encoding-for-a-postgresql-database-using-sql-or-phppga) –

+0

@DietrichEpp你提出的問題是關於編碼。我在詢問排序和字符類型 – slevin

+0

然後你很困惑。 UTF-8不是字符類型,它不是一個整理,UTF-8是一種編碼。 Windows 1253也是一種編碼,它不是一種字符類型。 –

回答

2

您無法更改現有數據庫的默認排序規則。您需要CREATE DATABASE以及您需要的歸類,然後將您的模式和數據轉儲/恢復到其中。

如果您不想重新創建數據庫 - 您可以爲數據庫中的每個文本列表指定排序規則。

下面是關於排序規則的詳細postgres手冊:Collation Support

本手冊頁面狀態的第一行:一個數據庫的

LC_COLLATE和LC_CTYPE設置不能後 其創作而改變。

CREATE DATABASEpg_dumppg_restore

的[如何更改數據庫編碼用於使用SQL或phpPgAdmin的PostgreSQL數據庫?](
+0

我使用pgAdmin將表格列的排序設置爲「pg_catalog 。 「C」;'。名稱存儲在數據庫中很好。當我保存希臘字符時,我在數據庫中看到希臘字母。這整個問題開始是因爲[this](http://stackoverflow.com/questions/18946772/set-charset-when-saving-files-with-php)。我仍然看到上傳到文件夾中的錯誤字符。是因爲數據庫嗎? – slevin

+0

@slevin您指出的問題不是關於LC_COLLATE和LC_CTYPE。它是關於字符編碼的(如'utf8','Windows 1253'等)。如果您想使用unicode charactesr - 需要將數據庫編碼設置爲unicode(utf8),並讓您的應用程序以unicode發送字符串。 –

+0

@數據庫的編碼是utf8。整理和字符集是不同的(希臘...)。我將重新檢查一切...無論如何,感謝您的時間 – slevin

相關問題