varcharカラムで大文字小文字を区別しない一意性を実現したい。しかし、Postgresでは大文字と小文字を区別しないテキストデータ型はありません。元の大文字小文字は重要ではないので、UNIQUE制約を持つ列に挿入する前に、すべてを小文字/大文字に変換することをお勧めします。また、迅速な検索のために1つのINDEXが必要です。Postgresql:カラムの挿入中(または挿入前)にテキストを自動小文字にする
挿入前にデータを操作する方法はありますか?
私はこの他の質問:How to automatically convert a MySQL column to lowercaseを見ました。 テキストの小文字の挿入/更新時にトリガを使用するか、テキストを小文字にしたビューを使用することを推奨します。しかし、示唆された方法のどれも一意性を保証するものはありません。
また、このデータはさまざまなアプリケーションで読み書きされるため、個々のアプリケーションごとにデータを小さくすることはお勧めできません。
あなたも、元のデータと周りの混乱に持っていない道( there is oneが)CREATE UNIQUE INDEX idx_lower_unique
ON your_table (lower(the_column));
あなたは大文字と小文字を区別しないデータ型を必要としない
現時点での回答のうち、挿入前のデータを実際に小文字にするものはありません。これは尋ねられているものです。 http://stackoverflow.com/questions/18807709/create-a-postgres-rule-or-trigger-to-automatically-convert-a-column-to-lowercaseを参照してください。 –