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 等于时更新列和总价
我得到 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 等于时更新列和总价