【问题标题】:Passing additional arguments to trigger from application传递附加参数以从应用程序触发
【发布时间】:2018-08-08 16:11:29
【问题描述】:

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

感谢您的帮助。

【问题讨论】:

    标签: java mysql orm


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-08-15
      • 1970-01-01
      • 2022-11-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多