Ich habe drei Tabellen berechnet:Wie Trigger erstellen Spalten zu aktualisieren, die von einer anderen aktualisierten Tabelle
Produkt (pid, pname, pbrand, pprice)
ShoppingCart (cartId, cid, aktiv, Totalprice) ShoppingCart.cid Verweise auf Customer.cid
CartItem (cartId, pid, iprice, iquantity) CartItem.cartid referenziert ShoppingCart.cartid, CartId.pid verweist Product.pid
wenn t Wenn der Produktpreis in Table Product aktualisiert wird, sollten zuerst alle Einkaufswagen (CartItem) aktualisiert werden, die dieses Produkt enthalten, und dann der Gesamtpreis aktualisiert werden, der im zugehörigen Einkaufswagen berechnet wird.
kann ich den ersten Teil fertig und ich erwarte, dass die zweite Aufgabe
delimiter //
create trigger update_prodprice after update on product
for each row
begin
update cartitem set iprice=new.pprice where pid=new.pid
and cartid in (select cartid from shoppingcart where active=True);
update shoppingcart set totalprice=sum(cartitem.iprice*cartitem.iquantity)
where active=True and cartid=cartitem.cartid;
end //
delimiter ;
wie funktionieren könnte Aber das zweite Update funktioniert nicht, da die
"ERROR 1054 (42S22): Unknown column 'cartitem.cartid' in 'where clause'"