Sumowanie ceny itemów do platnosci

Sumowanie ceny itemów do platnosci
DE
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 311
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?

Kopiuj
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;
abrakadaber
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 6610
0

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

Marcin.Miga
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2794
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ń:

Kopiuj
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:

Kopiuj
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;

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.