AFAIK次の3つのテストはすべてtrue(t
)を返します。彼らは実際に私がCOLLATE "de_DE"
を付加すると動作します。UmlautsでのPostgreSQLパターンの一致
私はこれを対話型のデータベース端末で実行していますので、照合が有効になっていないのでしょうか?どの照合が有効であるかを何らかの形で確認することができますか?もしそうなら、(UTF-8でエンコードされた)データを変更せずに変更することができますか?また
version
------------------------------------------------------------------------------------------------
PostgreSQL 9.4.13 on x86_64-unknown-linux-gnu, compiled by gcc (Debian 4.9.2-10) 4.9.2, 64-bit
=> SELECT 'Ü' ~* 'Ü';
?column?
----------
t
=> SELECT 'Ü' ~* 'ü';
?column?
----------
f
=> SELECT 'Ü' ~* '\mÜ';
?column?
----------
f
、ウムラウトと小文字を区別しないパターンマッチを作るための方法は、すなわち'Ü' ~*SOMETHINGHERE '\mU'
リターンt
を持っている、あるのでしょうか?または、すべてのクエリ呼び出しにCOLLATE
を追加するだけですか?または、私はちょうど次のことを実行する必要がありますが、実際にはデータに触れません、ルックアップの動作とインデックスのみですか?
ALTER TABLE articles ALTER COLUMN title SET DATA TYPE VARCHAR(255) COLLATE "de_DE";