java - 将附加参数从应用程序传递给触发器

标签 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_returneddesmaged

我可以像这样使用触发器

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

damage 属性应该以某种方式作为应用程序的参数插入。这样的事情可能吗,还是我必须从应用程序中处理这个问题 - 不使用触发器?

感谢您的帮助。

最佳答案

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

但是,如果您的数据库中已经有这些值,则可以照常创建 SELECT 语句并从不同的表中选择它们。

关于java - 将附加参数从应用程序传递给触发器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51751246/

相关文章:

java - 按钮单击事件以打开互联网上的书签

mysql - 使用限制SQL后检查查询数量

MySQL:从表A中选择表B中不存在的

java - 建模 "specific products"数据库

java - JPA EntityManager 在使用 Guice 的 PrivateModule 时不工作

java - @OneToMany 双向关系返回空列表

java - 没有反向关系的多态 CriteriaQuery

C# Mysql UTF8 编码

php - Laravel 插入和检索关系

java - 如何使用 Docker 在 Linux 中更改目录