#mysql #triggers
#mysql #триггеры
Вопрос:
Я пытаюсь получить значение вставленной строки, чтобы я мог использовать эту строку в триггере.
CREATE TRIGGER employee_insert_trigger AFTER INSERT ON EMPLOYEE
FOR EACH ROW BEGIN
//I wan here the value of what was inserted here
END
Ответ №1:
Используйте NEW
, как показано ниже. Смотрите Синтаксис триггера и примеры для получения дополнительной информации
CREATE TRIGGER employee_insert_trigger AFTER INSERT ON EMPLOYEE
FOR EACH ROW
BEGIN
SET @some_col = NEW.some_col;
END
Комментарии:
1. каким здесь будет значение some_col? вставленная строка? Я никогда не видел ключевое слово «NEW»
2. Итак, если вставленная строка имеет значение sme_col равное 10 (скажем) .. @some_col будет содержать то же значение. Смотрите отредактированный ответ, который включает ссылку на документ MySQL.
Ответ №2:
Если вы вставили только одну строку, LAST_INSERTED_ID()! получит для вас последний идентификатор. Вы можете использовать эту информацию для получения данных об этой строке.
В противном случае, если вы вставили более одной строки, в этом сообщении содержится некоторая информация о выполнении этой процедуры.
Вы также можете использовать NEW для этого.