2011-10-18 13 views
5

私はmysql dbを使用しています。私はpostgresqlとSQL Serverが部分的なインデックス作成をサポートしていることを知っています。私の場合、私はこのような何かをしたい:部分インデックスまたはフィルタされたインデックスのためのmysqlの回避策?

CREATE UNIQUE INDEX myIndex ON myTable (myColumn) where myColumn <> 'myText' 

私はユニーク制約を作成したいが、それは特定のテキストであれば、それは重複を許可する必要があります。

これをmysqlで直接行う方法が見つかりませんでした。しかし、それを達成するための回避策はありますか?

答えて

5

私はそれを達成する方法が1つしかないと思います。あなたは、あなたのテーブルに別の列を追加し、その上にインデックスを作成し、トリガーを作成するか、次の条件を使用して、このコラムを埋めるために、あなたのストアドプロシージャ内/更新を挿入することが可能です。

if value = 'myText' then put null 
otherwise put value 

は、それが

を役に立てば幸い
関連する問題