この質問はPostgres doesn't search case-insensitive unicode regexPostgresの機能は
に似ていますが、upper
機能は同様に動作しないことが表示されますか? また、サーバーutf8でエンコードしているようです。
CentOS 6でwebfaction private postgresインスタンスを使用していて、クラスタ作成時にロケールを設定する方法がわかりません。
どうすれば解決できますか。
この質問はPostgres doesn't search case-insensitive unicode regexPostgresの機能は
に似ていますが、upper
機能は同様に動作しないことが表示されますか? また、サーバーutf8でエンコードしているようです。
CentOS 6でwebfaction private postgresインスタンスを使用していて、クラスタ作成時にロケールを設定する方法がわかりません。
どうすれば解決できますか。
変更照合、のように:また、あなたのデータをダンプし、右のロケールでDBにそれを復元することができ
b=# create table clt (a text COLLATE "C");
CREATE TABLE
b=# insert into clt select 'утф';
INSERT 0 1
b=# select upper(a) from clt;
upper
-------
утф
(1 row)
b=# alter table clt alter column a set data type text COLLATE "en_US";
ALTER TABLE
b=# select upper(a) from clt;
upper
-------
УТФ
(1 row)
:
b=# select upper('утф' COLLATE "C"), upper('утф' COLLATE "en_US");
upper | upper
-------+-------
утф | УТФ
(1 row)
のようにデフォルトを変更します。リストア時に、正しい照合順序でテーブルを構築します:
b=# CREATE DATABASE not_c ENCODING 'UTF8'
lc_ctype='en_US.utf-8'
lc_collate='en_US.UTF-8' TEMPLATE=template0;
CREATE DATABASE
b=# \c not_c
You are now connected to database "not_c" as user "postgres".
not_c=# create table clt (a text);
CREATE TABLE
not_c=# insert into clt select 'утф';
INSERT 0 1
not_c=# select upper(a) from clt;
upper
-------
УТФ
(1 row)
1つのステートメントを持つすべてのテーブルに対して、どうすればいいですか? –
ありがとうございます!!!!! –
心配なし、私の喜び –
あなたは、あなたには何も言わないものがあります: 'a =#select upper( 'утф'); upper ------- УТФ (1 row) ' –
postgres =#select version(); PostgreSQLのGCCでコンパイルx86_64で、未知のLinux GNU、オン9.4.10(GCC)4.8.5 20150623( レッドハット4.8.5-4)、64ビット (1行) のPostgres =#上部選択( 'утф'); upper ------- утф (1 row) –
hm:/ 'show server_encoding;'?..と 'show lc_collate;'?.. –