Cześć,
Mam dwie tabele:
CREATE TABLE stock_details
(
id bigserial NOT NULL,
closeprice double precision NOT NULL,
date date,
maxprice double precision NOT NULL,
minprice double precision NOT NULL,
openprice double precision NOT NULL,
volume integer NOT NULL,
stock_ticker character varying(255),
CONSTRAINT stock_details_pkey PRIMARY KEY (id),
CONSTRAINT fk_ly62pqfj6inbyk1nbmfy4dobg FOREIGN KEY (stock_ticker)
REFERENCES stocks (ticker) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION
)
oraz:
CREATE TABLE stocks
(
ticker character varying(255) NOT NULL,
average_volume_10_days double precision,
average_volume_30_days double precision,
volume_ratio double precision,
percent_return double precision,
CONSTRAINT stocks_pkey PRIMARY KEY (ticker)
)
Chciałbym stworzyć triggera after insert dla tabeli stock_details, który działał by w następujący sposób. Gdy zostanie dodany rekord do tabeli stock_details uruchomi się funkcja do obliczenia percent_return w tabeli stocks. Wspomnianą funkcję już sobie napisałem.
CREATE OR REPLACE FUNCTION totalrecords1(param character varying)
RETURNS double precision AS
$BODY$
declare
total double precision;
BEGIN
SELECT (closeprice/openprice-1)*100 into total FROM stock_details where stock_ticker=param order by date DESC;
RETURN total;
END;
Teraz chciałbym aby połączyć ją z triggerem, i gdy dodam do stock_details wszystkie informacje łącznie z stock_ticker to właśnie policzy mi percent_return na podstawie stock_tickera i ustawi pole percent_return w tabeli stocks jako wynik funkcji. Mam nadzieję, że w miare jasno się wyraziłem.