Mysql 触发后代

Mysql Trigger Prolem

我得到 2 Table,即交易和产品

DELIMITER $$

CREATE TRIGGER total_value
  AFTER UPDATE ON product
  FOR EACH ROW
BEGIN
    UPDATE transaction
       SET transaction.TotalPrice = product.ProductPrice * Transaction.OrderedQty   
END;

DELIMITER ;

但显示意外错误

对不起,其实我的问题是我想在我的交易中插入总价值来计算数量和产品价格,其中产品价格来自另一个 table,即产品 table 和我的问题是我不知道正确的语法吗:(

Here is my Transaction

Here is My Product

假设您在命令行客户端中执行此操作(因此 DELIMITER 命令有效),您只是忘记终止您的 UPDATE 语句:

UPDATE transaction
   SET transaction.TotalPrice = product.ProductPrice * Transaction.OrderedQty;

注意最后的 ;

尽管刚刚将分隔符更改为 $$

,但您还在触发器文本的末尾写了 ; 而不是 $$

我想你想这样做并更新新的产品价格。

DELIMITER $$

CREATE TRIGGER total_value
  AFTER UPDATE ON product
  FOR EACH ROW
BEGIN
    UPDATE transaction tr
       SET tr.TotalPrice = NEW.ProductPrice * tr.OrderedQty
          Where tr.ProductID = NEW.PRoduktID;  
END;

DELIMITER ;

因此它只在 productID 等于时更新列和总价