Sumowanie ceny itemów do platnosci

0

Mam dwie tabele

zamówienie z kolumnami id, status.

koszyk z kolumnami id, item_name, orderId(fk), price.

płatność z kolumnami id, orderId(fk), total_price.

Za każdym razem, gdy wstawiam/aktualizuję pozycję do koszyka, chcę zsumować cenę i wstawić ją do kolumny total_price w płatności. Jak to osiągnąć?

Nie znam się na sql, musze jakiegoś joina zrobić przy w tym update?

CREATE FUNCTION sum_price() RETURNS TRIGGER
AS $$ 
    BEGIN
        SELECT sum(price) from basket // jak to teraz przerzucic do platnosc total_price?
        
    RETURN NEW;
END; $$ LANGUAGE plpgsql;
0

generalnie tak się nie robi - wylicza się to na poziomie odpytywania bazy a nie dodawania danych

1

Ja bym się do tego zabrał "od d**y strony". Czyli każdorazowo na INSERT/UPDATE/DELETE tabeli basket robiłbym UPDATE na order.
Czyli coś w ten deseń:

UPDATE order SET total_price= total_price + NEW.price - OLD.price WHERE id=NEW.orderId;

albo (gdyby zainstaniała sytuacja, że można zmieniać orderId) tak:

UPDATE order SET total_price= total_price - OLD.price WHERE id=OLD.orderId;
UPDATE order SET total_price= total_price + NEW.price WHERE id=NEW.orderId;

1 użytkowników online, w tym zalogowanych: 0, gości: 1