InnoDB позволява ограничение на външен ключ да препраща към неуникален ключ. Това е разширение на InnoDB към стандартен SQL.
Въпреки това, има практическа причина да се избягват външни ключове в неуникални колони на реферираната таблица. Тоест каква трябва да бъде семантиката на „ON DELETE CASCADE“ в такъв случай?
Документацията съветва допълнително :
Обработката на препратки към външни ключове към неуникални ключове или ключове, които съдържат стойности NULL, не е добре дефинирана (...) Препоръчваме ви да използвате външни ключове, които препращат само към УНИКАЛНИ (включително ПЪРВИЧНИ) и НЕ NULL ключове.