2011-10-18 7 views
5

Sto usando mysql db. So che postgresql e SQL server supportano l'indicizzazione parziale. Nel mio caso voglio fare qualcosa di simile:Soluzione alternativa in mysql per indice parziale o indice filtrato?

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

Voglio creare un vincolo univoco, ma dovrebbe consentire duplicati se si tratta di un particolare testo.

Non riesco a trovare un modo diretto per farlo in mysql. Ma c'è una soluzione per raggiungerlo?

risposta

5

Suppongo che ci sia solo un modo per raggiungerlo. È possibile aggiungere un'altra colonna alla tabella, creare l'indice su di esso e creare trigger o non inserimento/aggiornamento dentro le stored procedure per colmare questa colonna utilizzando seguente condizione:

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

Speranza che aiuta