Mysql erlaubt mehrere NULLen in einer eindeutigen Einschränkung. In Ihrer serial_number
Spalte ersetzen NULL
mit einem Wert und der Constraint wird ausgelöst, siehe:
http://sqlfiddle.com/#!2/9dbd19/1
Machen Sie die Spalte NICHT NULL und verwenden Sie ''
die leer ist.