Перед обновлением триггера в Phpmyadmin, как получить обновленные значения - PullRequest
2 голосов
/ 25 марта 2019

Я пытаюсь получить триггер в phpmyadmin, который будет создавать аудит с определенным значением столбца (reputation) до и после обновления определенной таблицы.

Что-то вроде:

CREATE DEFINER=`test`@`%`
TRIGGER `monitor update reputation`
BEFORE UPDATE ON `game_resorts`
FOR EACH ROW
INSERT INTO `audit` (`id`, `datetime`, `id_resort`, `reputation`)
VALUES (NULL, CURRENT_TIMESTAMP, id_resort, reputation)

Основной вопрос - как мне получить id_resort, который будет обновлен;а затем значение reputation?

1 Ответ

0 голосов
/ 26 марта 2019

В MySQL вы бы использовали ключевое слово NEW, поэтому я предполагаю, что с phpmyadmin оно будет таким же.

Например:

CREATE DEFINER=`test`@`%`
TRIGGER `monitor_update_reputation` //don't use spaces in a trigger name
BEFORE UPDATE ON `game_resorts`
FOR EACH ROW
INSERT INTO `audit` (`datetime`, `id_resort`, `reputation`) 
VALUES (CURRENT_TIMESTAMP, NEW.id_resort, NEW.reputation)

Если вы хотите получить значение id_resort или reputation до обновления, вы можете использовать ключевое слово OLD:

...
VALUES (CURRENT_TIMESTAMP, OLD.id_resort, OLD.reputation)

Кроме того, я не думаю, что вы можете вставить NULL в столбец первичного ключа. Если для вашего id в таблице audit установлено автоматическое увеличение, вы можете просто опустить столбец id в операторе INSERT.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...