MySQL
supporta perfettamente vincoli unici.
Tuttavia, non supporta vincoli/indici parziali, quindi dovresti contrassegnare le immagini non primarie con un NULL
invece di 0
.
ALTER TABLE file ADD CONSTRAINT ux_file_customer_primary
UNIQUE (customerId, isPrimaryImage)
Puoi inserire un numero arbitrario di NULL
valori in isPrimaryImage
ma solo un valore non nullo per cliente.