Удаление из разных таблиц с внешними ключами - PullRequest
0 голосов
/ 06 мая 2019

У меня в коде внешнего интерфейса есть таблица, где я показываю серию упражнений, а рядом с каждым из них есть кнопка, чтобы можно было отменить это упражнение.Проблема в том, что моя таблица упражнений связана с другими таблицами:

CREATE TABLE exercises (
    exercise_id INT,
    PRIMARY KEY(exercise_id)
);

CREATE TABLE ex_tag(
    exercise_id_fk INT,
    tag_id_fk INT,
    FOREIGN KEY(exercise_id_fk) REFERENCES exercises(exercise_id),
    FOREIGN KEY(tag_id_fk) REFERENCES tags(tag_id)
);

CREATE TABLE solution(
    exercise_id_fk INT,
    solution_number INT,
    FOREIGN KEY(exercise_id_fk) REFERENCES exercises(exercise_id)
);

И иногда создается запись в следующей таблице.Если на упражнение получен ответ, оно будет создано, но если нет, то оно не будет создано.

CREATE TABLE answers(
    exercise_id_fk INT,
    student_id INT,
    FOREIGN KEY(exercise_id_fk) REFERENCES exercises(exercise_id)
);

Если таблица ' упражнения ' не имеет отношения к какой-либо таблице, этозапрос будет работать:

DELETE FROM exercises WHERE exercise_id=$id

Как изменить запрос, чтобы можно было удалить выбранное упражнение из всех таблиц, для которых оно необходимо, с помощью этого единого идентификатора упражнения?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...