У меня проблемы с записью триггера базы данных для mysql.Для простоты я создам макет фиктивной схемы и затем сообщу вам, что должен делать триггер:
Table A
id
status
base_id
Table B
id
status
A.base_id (foriegn key back to base_id)
При обновлении записи в таблице A, если для состояния задано одно из трех значений (4,5, 6) триггеру необходимо обновить все записи в таблице B, которые соответствуют base_id.
Проблема немного сложнее, чем эта, но это основа проблемы, и я новичок в триггерах базы данных и не могу показатьсячтобы получить даже близко.Таблицы довольно большие, поэтому триггер должен быть «целевым».Другими словами, он не должен сканировать всю таблицу A каждый раз, когда происходит какое-либо обновление, и обновлять все записи в таблице B соответственно.Следует обновлять только те записи в таблице B, которые непосредственно соответствуют единственной обновленной строке, которая запускает триггер.
Любая помощь будет принята с благодарностью.
################### 33 UPDATE
Это триггер в том виде, в каком он есть в данный момент, но не компилируется.Ошибка «неизвестный столбец« статус »в« NEW »»
DELIMITER $$
CREATE TRIGGER db.after_tableA_update
AFTER UPDATE ON tableA
FOR EACH ROW
BEGIN
IF NEW.status IN (13,14,15) then
update tableB as b set b.task_status = 26 where b.match_id = NEW.match_id;
END IF;
END $$
DELIMITER ;