我想在varchar列中實現不區分大小寫的唯一性。但是,Postgres中沒有不區分大小寫的文本數據類型。由於原始文本大小並不重要,因此在插入具有UNIQUE約束的列之前將所有文本轉換爲小寫/大寫都是一個好主意。此外,它將需要一個INDEX快速搜索。Postgresql:插入列時自動小寫文本(或之前)
Postgres有什麼辦法在插入之前操作數據嗎?
我看了另外一個問題:How to automatically convert a MySQL column to lowercase。 它建議在插入/更新小寫文本時使用觸發器,或者使用小寫文本使用視圖。但是,所建議的方法都不能確保唯一性。此外,由於這些數據將被各種應用程序讀取/寫入,所以在每個應用程序中壓縮數據並不是一個好主意。
目前的答案都不會在插入前小寫數據,這就是問題所在。請參閱http://stackoverflow.com/questions/18807709/create-a-postgres-rule-or-trigger-to-automatically-convert-a-column-to-lowercase。 – 2014-07-17 20:25:05