2011-10-18 86 views
5

我正在使用mysql數據庫。我知道postgresql和SQL服務器支持部分索引。在我來說,我希望做這樣的事情:在部分索引或過濾索引mysql的解決方法?

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

我想創建一個唯一約束,但應該允許重複,如果它是一個特定的文本。

我找不到在mysql中執行此操作的直接方法。但是,是否有解決方法來實現它?

回答

5

我想只有一種方法可以實現它。您可以添加另一列到你的表,在其上創建索引,並創建觸發器或不插入您的存儲過程中/更新使用以下條件來填補此列:

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

希望它可以幫助