У меня есть таблица «A» со столбцом «flag», как показано ниже:
candidate_id | name | flag
-----------------------------
0001 | ABC | f |
0002 | DEF | t |
0003 | GHI | t |
и таблица «B» со столбцом «статус», как показано ниже:
candidate_id | status
-----------------------------
0001 | Applied |
0002 | Applied |
0003 | Applied |
Я хочу написать триггер со следующим logi c:
- Когда запись происходит в таблице «B», я хочу изменить значение «status» на «Rejected», только если последний вставленный «идентификатор_кандидата» в таблице «В», который ссылается на «идентификатор_кандидата» в таблице «А», имеет «флаг = t».
Я написал триггер следующим образом, но Я не могу найти синтаксис в MySql, чтобы получить значение «flag» для конкретного кандидата_id:
CREATE TRIGGER update_status_to_rejected
Before INSERT ON db.B FOR EACH ROW
BEGIN
DECLARE candidate_id INTEGER;
candidate_id = NEW.candidate_id;
// Im stuck from here with the MySQL syntax
get the last_inserted candidate_id,
check in table A whether this candidate_id flag=='t'
then:
set NEW.status = 'Rejected'
Не могли бы вы помочь мне здесь? Я искал много решений, но не смог найти, когда нужно проверить значение другой таблицы. Я также хотел бы знать, как вставить новую строку со статусом «Отклонено» вместо обновления последней вставленной строки. Заранее спасибо.