Мне нужно установить trigger
, чтобы изменить чью-либо оценку в таблице «GRADE» с null
на «D», если они удалены из таблицы «STUDENT». Пока у меня есть:
create or replace trigger delete_from_student
after delete on student
for each row
begin
update grades
set grade = 'D'
where grade = ''
end delete_from_student;
Я знаю, что это не может быть правильно, потому что я получаю красное подчеркивание на «конце». Я также считаю, что должен быть кто-то, кто должен быть уверен, что только ученик, который был удален из таблицы «СТУДЕНТ», должен был изменить свою оценку на D. До сих пор мы сделали только то, что, если вы добавите кого-то в таблицу А, тогда они автоматически помещается в таблицу B, так что я запутался в том, как использовать UPDATE вместо INSERT с триггером, и чтобы убедиться, что он влияет только на одну строку в таблице "GRADES". Спасибо за вашу помощь!
Редактировать: Я читал больше страниц и наконец-то понял синтаксис срабатывания триггера:
create or replace trigger delete_from_student
after delete on student
for each row
begin
update grades set
grade = 'D'
where grade is null;
end delete_from_student;
Теперь моя проблема в том, что как я боялся, это влияет на каждую строку в таблице «GRADES», а не только на студента, который был удален. Итак, теперь мой вопрос: как я могу убедиться, что я влияю только на строку для студента, которого я удалил?
Второе редактирование: цель упражнения - просто научить нас, как работают триггеры, а не создать функциональную БД. Профессор предвосхитил это, сказав, что вы не сделаете этого в реальном мире по причинам, указанным другими людьми, но он просто учит нас о триггерах.