Vincolo unico che consente valori vuoti in MySQL

Ho un campo che memorizza i codici prodotto. I codici sono unici, ma alcuni prodotti semplicemente non hanno un codice. Non posso inventare codici perché quelli sono codici provider.

Questo tipo di vincoli è ansible in MySQL?

Sono un noob con stored procedure e trigger, quindi se la soluzione coinvolge uno di questi, si prega di essere paziente.

Aggiornamento: la colonna NON è NULL. Ecco perché non ero in grado di farlo.

Si, puoi fare questo. Vedi il riferimento MySQL (versione 5.5) .

Un indice UNIQUE crea un vincolo in modo tale che tutti i valori dell’indice debbano essere distinti. Si verifica un errore se si tenta di aggiungere una nuova riga con un valore chiave corrispondente a una riga esistente. Per tutti i motori, un indice UNIQUE consente più valori NULL per le colonne che possono contenere NULL.

Sì, se si rende nullable la colonna del codice prodotto (non dichiarata con NOT NULL ), la chiave univoca consentirà più righe con codici prodotto NULL .

MySQL consente ancora a più righe di avere un valore di NULL in una colonna univoca.