需求
有一张表,字段有
Time,ExchangeID,InstrumentID,ClosePrice,PreClosePrice……
其中Time,ExchangeID,InstrumentID作为复合主键;
需要根据前一天的ClosePrice更新当天PreClosePrice;
这里有三个类似PreClosePrice的字段需要更新;
思路
使用存储过程完成,选出PreClosePrice字段为空的记录,使用游标遍历每一条记录,查询该记录对应的前一天记录中的ClosePrice的值x,再更新当前记录的PreClosePrice值为x;
实现
DROP PROCEDURE IF EXISTS update_KlineDayTab;
CREATE PROCEDURE update_KlineDayTab()
BEGIN
DECLARE n INT DEFAULT 0;
DECLARE total INT;
DECLARE done INT DEFAULT FALSE;
DECLARE vTime TIMESTAMP;
DECLARE vExchangeID VARCHAR(8);
DECLARE vInstrumentID VARCHAR(10);
DECLARE vPreClosePrice DECIMAL;
DECLARE vPreSettlementPrice DECIMAL;
DECLARE vPreOpenInterest INT;
DECLARE tPreClosePrice DECIMAL;
DECLARE tPreSettlementPrice DECIMAL;
DECLAR