传递其他参数以从应用程序触发

时间:2018-08-08 16:11:29

标签: java mysql orm

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

我触发了删除表中的行之前,将其插入到对其进行存档的表中。

让我说

car_rental
id | customer | date_of_rent |

car_rental_archive
id | customer | date_of_rent | date_of_return | demaged 

car_rental_archivecar_rental加上date_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属性作为应用程序的参数插入。可能会发生这种情况吗?还是我必须从应用程序处理此问题-对此不使用触发器?

感谢帮助。

1 个答案:

答案 0 :(得分:1)

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

但是,如果您确实已经在数据库中的某个位置拥有这些值,则可以照常执行SELECT语句,然后从其他表中选择它们。