首页 > 解决方案 > 传递附加参数以从应用程序触发

问题描述

是否可以从应用程序发送其他参数以在 mysql 中触发?

我已经触发了,在删除表中的行之前将其插入到存档它的表中。

可以说我有

car_rental
id | customer | date_of_rent |

car_rental_archive
id | customer | date_of_rent | date_of_return | demaged 

与加号和car_rental_archive具有相同的列car_rentaldate_of_returneddemaged

我可以像这样使用触发器

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属性应该以某种方式作为来自应用程序的参数插入。这样的事情是否可能,或者我必须从应用程序中处理这个问题 - 不为此使用触发器?

感谢帮助。

标签: javamysqlorm

解决方案


只要数据不在数据库中的任何位置,您就无法在触发器中访问它。因此,如果damage数据是新信息,不幸的是不可能在触发器中接收这些值。

但是,如果您在数据库中的某处已经有这些值,您可以像往常一样制作 SELECT 语句并从不同的表中选择它们。


推荐阅读