Chỉ để làm rõ mọi thứ, đây là cách bảng trông như thế nào sau khi các ràng buộc khóa ngoại được đưa vào:
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 ;
Lưu ý rằng các chỉ mục fk_leerp_oefenr_leerplan và fk_leerp_oefenr_oefenreeks mà mysql tự động thêm vào.
Sau khi bạn thêm ràng buộc khóa duy nhất đầu tiên:
ALTER TABLE leerplan_oefenreeks ADD CONSTRAINT un_leerp_oefenr UNIQUE(leerplan_id, oefenreeks_id);
Mysql xóa chỉ mục fk_leerp_oefenr_leerplan vì nó không còn cần thiết để hỗ trợ kiểm tra khóa ngoại trên cột leerplan_id. Tại thời điểm này, bảng trông như sau:
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 ;
Tóm lại, Sqlyog chỉ hiển thị các chỉ mục trong chế độ xem dạng cây ở bên trái, nếu bạn muốn xem các phím ngoại, hãy chọn bảng trong chế độ xem dạng cây và nhấn F10.