Ter verduidelijking, dit is hoe de tabel eruit ziet nadat de externe sleutelbeperkingen zijn ingevoerd:
CREATE TABLE `leerplan_oefenreeks` (
`leerplan_oefenreeks_id` int(11) NOT NULL AUTO_INCREMENT,
`leerplan_id` int(11) NOT NULL,
`oefenreeks_id` int(11) NOT NULL,
`plaats` int(11) NOT NULL,
PRIMARY KEY (`leerplan_oefenreeks_id`),
KEY `fk_leerp_oefenr_leerplan` (`leerplan_id`),
KEY `fk_leerp_oefenr_oefenreeks` (`oefenreeks_id`),
CONSTRAINT `fk_leerp_oefenr_oefenreeks` FOREIGN KEY (`oefenreeks_id`) REFERENCES `oefenreeks` (`oefenreeks_id`) ON DELETE CASCADE,
CONSTRAINT `fk_leerp_oefenr_leerplan` FOREIGN KEY (`leerplan_id`) REFERENCES `leerplan` (`leerplan_id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=latin1 ;
Let op de indexen fk_leerp_oefenr_leerplan en fk_leerp_oefenr_oefenreeks die mysql automatisch toevoegt.
Nadat u de eerste unieke sleutelbeperking heeft toegevoegd:
ALTER TABLE leerplan_oefenreeks ADD CONSTRAINT un_leerp_oefenr UNIQUE(leerplan_id, oefenreeks_id);
Mysql verwijdert de fk_leerp_oefenr_leerplan index omdat deze niet langer nodig is om de externe sleutelcontroles in de leerplan_id kolom te ondersteunen. Op dit moment ziet de tabel er als volgt uit:
CREATE TABLE `leerplan_oefenreeks` (
`leerplan_oefenreeks_id` int(11) NOT NULL AUTO_INCREMENT,
`leerplan_id` int(11) NOT NULL,
`oefenreeks_id` int(11) NOT NULL,
`plaats` int(11) NOT NULL,
PRIMARY KEY (`leerplan_oefenreeks_id`),
UNIQUE KEY `un_leerp_oefenr` (`leerplan_id`,`oefenreeks_id`),
KEY `fk_leerp_oefenr_oefenreeks` (`oefenreeks_id`),
CONSTRAINT `fk_leerp_oefenr_leerplan` FOREIGN KEY (`leerplan_id`) REFERENCES `leerplan` (`leerplan_id`) ON DELETE CASCADE,
CONSTRAINT `fk_leerp_oefenr_oefenreeks` FOREIGN KEY (`oefenreeks_id`) REFERENCES `oefenreeks` (`oefenreeks_id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=latin1 ;
Om een lang verhaal kort te maken, Sqlyog toont alleen de indexen in de boomstructuur aan de linkerkant, als je de buitenlandse sleutels wilt zien, selecteer dan de tabel in de boomstructuur en druk op F10.