SQL trigger function to UPDATE daily moving average upon INSERT

前端 未结 2 648
死守一世寂寞
死守一世寂寞 2021-01-25 23:24

I am trying to create a SQL trigger function which should UPDATE a column when data is INSERTed INTO the table. The update is based on the values present in the values being INS

2条回答
  •  渐次进展
    2021-01-25 23:42

    Can't you just do something along those lines?

    INSERT INTO daily_ohlc 
    SELECT current_date, 101, 110, 95, 108, (COUNT(*)*AVG(close)+108)/(1+Count(*))
    FROM daily_ohlc
    WHERE cDate >= ANY (
        SELECT MIN(cdate)
        FROM (SELECT CDate, ROW_NUMBER() OVER (ORDER BY CDate DESC) as RowNum FROM daily_ohlc) a 
        WHERE RowNum <= 7
    )
    

    I know very well it could appear complicated compared to a trigger.
    However, I am trying to avoid a case where you successfully create the ON INSERT trigger and next want to handle updates in the table. Updating a table within a procedure triggered by an update in the same table is not the best idea.

提交回复
热议问题