Чтобы увидеть, что вы создали, посмотрите на DDL. (ПОКАЗАТЬ СОЗДАТЬ СТОЛ)
Для применения ограничений внешнего ключа - включая каскадное удаление - вы, вероятно, захотите использовать механизм innodb. Механизм myisam будет принимать DDL, который объявляет внешние ключи, но не применяет их.
MySQL позволит внешнему ключу предназначаться для неуникального столбца. MySQL документы скажем
Отклонение от стандартов SQL: ограничение FOREIGN KEY, которое ссылается на
неуникальный ключ не является стандартным SQL. Это расширение InnoDB для
стандартный SQL.
Они называют это расширением SQL. Я называю это ошибкой.
Это означает, что вы можете объявить tblSB.interviewID как внешний ключ, ссылающийся на tblInterviews.interviewID. Стандартные базы данных SQL не позволят этого.
5,6 документов скажем
Однако система не обеспечивает выполнение требования, на которое ссылается
столбцы будут УНИКАЛЬНЫМИ или будут объявлены НЕ ПУСТО. Обработка внешнего ключа
ссылки на неуникальные ключи или ключи, содержащие значения NULL, не являются
хорошо определены для таких операций, как ОБНОВЛЕНИЕ или УДАЛЕНИЕ КАСКАДА. Вы
Рекомендуется использовать внешние ключи, которые ссылаются только на UNIQUE и NOT NULL
ключи.
На мой взгляд, они говорят: «Это была плохая идея, но мы не знаем, как ее исправить. Поэтому вам решать, как этого избежать. Мы могли бы предупредить вас, когда вы попробуете это, но мы тоже не собираемся этого делать. "
На основании ваших комментариев я бы сказал, что это ограничение верно. , .
CONSTRAINT tblInterviewRecordtblSB
FOREIGN KEY (InterviewID, CoderID)
REFERENCES tblinterviewrecord (InterviewID, CoderID)
ON DELETE CASCADE ON UPDATE CASCADE
но этих двух нет, и их следует удалить.
CONSTRAINT tblSB_ibfk_1
FOREIGN KEY (InterviewID)
REFERENCES tblinterviewrecord (InterviewID)
ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT tblSB_ibfk_2
FOREIGN KEY (CoderID)
REFERENCES tblinterviewrecord (CoderID)
ON DELETE CASCADE ON UPDATE CASCADE