删除后触发然后更新mysql

2ledvvac  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(291)

我要在删除订单后触发
我的逻辑是: delete from orders_foods where id=;id 然后更新orders price=sum(orders\u foods.price)上的price,其中id=orders\u foods.order\u id
这是我以前尝试过的代码,但出现了错误 #1363 - ```
Delimiter //
CREATE TRIGGER ubah_tot_harga AFTER DELETE ON orders_foods
FOR EACH ROW
BEGIN
DECLARE harga_1 int default 0;
SELECT SUM(price) into harga_1 fROM orders_foods WHERE order_id = new.order_id;

 update  orders
  set price= harga_1
  where id=old.order_id;
  END

//
delimiter ;

点菜表点菜表
w7t8yxp5

w7t8yxp51#

您需要使用old.order\u id而不是new.order\u id。因为删除后没有new.order\u id,只有old.order\u id。

Delimiter //  
CREATE TRIGGER ubah_tot_harga AFTER DELETE ON orders_foods
FOR EACH ROW
BEGIN
    DECLARE harga_1 int default 0;
     SELECT SUM(price) into harga_1 fROM `orders_foods` WHERE order_id = old.order_id;

     update  orders
      set price= harga_1
      where id=old.order_id;
      END
//
delimiter ;

相关问题