Синтаксис UPDATE позволяет вам установить несколько столбцов, разделенных запятыми.
update sales_flat_order_journal
set subtotal_invoiced = NEW.subtotal_invoiced,
other_column1 = NEW.other_column,
other_column2 = (/* constant expression, not based on NEW */),
other_column3 = (SELECT ...scalar expression from some other tables... LIMIT 1),
updated_at = NOW()
where entity_id = new.entity_id;
Вы можете получить доступ к NEW.other_column
, чтобы получить значения той же строки, которая породила триггер.
Вы можете объявить локальные переменные в своем теле триггера, чтобы помочь вычислить сложные значения.
Вы можете использовать SELECT
операторы в вашем теле триггера для запроса значений из других строк или других таблиц, еслитак как вы используете скаляр SELECT
, который возвращает одну строку и один столбец.
Если вам нужно более сложное обновление, которое слишком сложно выполнить в триггере, я сделал бы это в коде приложения, а не в триггере.