получить обновленные столбцы в триггере MySQL

Есть ли способ получить список столбцов, которые были обновлены в триггере MySQL «до обновления»? Когда строка находится в определенном состоянии, я хочу сделать неизменяемыми все столбцы, кроме одного. Итак, я хотел бы получить доступ к массиву измененных столбцов, и если массив содержит какой-либо столбец, НО один столбец, который должен быть изменен, я бы отклонил обновление. В SQL Server есть функция COLUMNS_UPDATED(), но я не могу найти ничего подобного для MySQL.


person user155995    schedule 06.09.2019    source источник
comment
Вам нужно сравнить new.columnname с old.columnname (для всех столбцов, которые вы хотите проверить), см., например. здесь. Следует отметить одну вещь: COLUMNS_UPDATED( )update()) на сервере sql не проверяют, действительно ли значение было изменено, только если столбец был упомянут в запросе. В MySQL нет эквивалента этому (вы не можете определить, осталось ли значение столбца прежним, потому что оно не использовалось в запросе или потому что ему было присвоено то же значение), но ваше описание, кажется, не требует этого.   -  person Solarflare    schedule 06.09.2019
comment
Спасибо @Solarflare, я в курсе того, что вы описываете, но это именно то, чего я пытаюсь избежать. Я надеялся, что есть способ увидеть только те столбцы, которые изменились. У меня много столбцов, и я не хочу пересматривать триггер всякий раз, когда в таблицу добавляется новый столбец.   -  person user155995    schedule 07.09.2019