Можно ли отправлять дополнительные аргументы для запуска в mysql из приложения?
У меня есть триггер, который, прежде чем удалять строку в таблице, вставляет ее в таблицу, которая ее архивирует.
Допустим, у меня есть
car_rental
id | customer | date_of_rent |
а также
car_rental_archive
id | customer | date_of_rent | date_of_return | demaged
car_rental_archive
имеет те же столбцы, как car_rental
плюс date_of_returned
и demaged
Я могу использовать триггер как это
CREATE TRIGGER 'before_car_rental_delete' BEFORE DELETE ON 'car_rental'
FOR EACH ROW BEGIN
INSERT INTO car_rental_archive(
customer, date_of_rent, date_of_return, demaged
) VALUES(
OLD.user, OLD.date_of_rent, NOW(), ???
);
END
Атрибут demaged
должен быть каким-то образом вставлен в качестве аргумента из приложения. Что-то вроде этого возможно или мне приходится иметь дело с этим из приложения - не используя триггеры для этого?
Спасибо за помощь.
Пока данные не находятся нигде в базе данных, вы не можете получить к ней доступ в триггере. Поэтому, если данные damage
являются новой информацией, к сожалению, невозможно получить эти значения в триггере.
Однако, если у вас уже есть эти значения где-то в вашей базе данных, вы можете сделать инструкции SELECT как обычно и выбрать их из другой таблицы.