2011-10-18 16 views
5

Używam mysql db. Wiem, że serwer Postgresql i serwer SQL obsługuje częściowe indeksowanie. W moim przypadku chcę zrobić coś takiego:Obejście w mysql dla częściowego indeksu lub przefiltrowanego indeksu?

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

Chcę stworzyć niepowtarzalny ograniczenie ale powinna umożliwić duplikatów jeśli jest to przede wszystkim tekst.

Nie mogłem znaleźć bezpośredniego sposobu zrobienia tego w mysql. Ale czy istnieje obejście, aby to osiągnąć?

Odpowiedz

5

Przypuszczam, że jest tylko jeden sposób, aby to osiągnąć. Możesz dodać kolejną kolumnę do tabeli, należy utworzyć indeks na niej i utworzyć wyzwalacz lub wkładaj/aktualizację wewnątrz swoich procedur przechowywanych, aby wypełnić tę kolumnę za pomocą następującego warunku:

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

nadzieję, że pomoże