InnoDB umożliwia ograniczeniu klucza obcego odwoływanie się do nieunikalnego klucza. To jest rozszerzenie InnoDB do standardowego SQL.
Istnieje jednak praktyczny powód, aby unikać kluczy obcych w nieunikatowych kolumnach tabeli, do której się odwołuje. To znaczy, jaka powinna być semantyka słowa „ON DELETE CASCADE” w takim przypadku?
Dokumentacja zawiera dalsze wskazówki :
Obsługa odwołań do kluczy obcych do nieunikalnych kluczy lub kluczy zawierających wartości NULL nie jest dobrze zdefiniowana (...) Zaleca się używanie kluczy obcych, które odwołują się tylko do kluczy UNIKATOWYCH (w tym PRIMARY) i NIE NULL.