我有2个表,即交易和产品
DELIMITER $$
CREATE TRIGGER total_value
AFTER UPDATE ON product
FOR EACH ROW
BEGIN
UPDATE transaction
SET transaction.TotalPrice = product.ProductPrice * Transaction.OrderedQty
END;
DELIMITER ;
但显示出意外错误
我很抱歉,我的问题是我想在交易中插入一个总值来计算数量和产品价格,其中产品价格来自另一个表(产品表),而我的问题是我不知道正确的语法那:(
答案 0 :(得分:1)
假设您正在命令行客户端中执行此操作(因此main()
命令有效),您只是忘了终止main_menu()
语句:
int menu_option = main_menu();
if (menu_option == 5) {
请注意最后的DELIMITER
。
尽管您刚刚将分隔符更改为UPDATE
,但您还是在触发文本的末尾写了UPDATE transaction
SET transaction.TotalPrice = product.ProductPrice * Transaction.OrderedQty;
而不是;
。
答案 1 :(得分:0)
我认为您想这样做并使用新的Productprice更新。
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 si相等时才更新列和总价格