56,677
社区成员
发帖
与我相关
我的任务
分享
CREATE PROCEDURE stockDateRecordProduct()
BEGIN
DECLARE cur CURSOR FOR SELECT ... FROM TEMP_TRANSACTION_ALL; -- 0 定义游标
INSERT INTO TEMP_TRANSACTION_ALL (...) -- 1 插入N条事条数据到 TEMP_TRANSACTION_ALL 表
SET i = 0;
WHILE i < 4 DO
INSERT INTO stock_date_record(...)(SELECT...FROM); --2 往 stock_date_record 表中插入一条数据
-- 在此处加COMMIT;也不好用
SELECT count(1) FROM stock_date_record WHERE ... into cntR -- 3 此处查询 stock_date_record 表(上面插入的数据),
select cntR ; -- 始终查不到数据,select cntR 一直为零导致下面游标中UPDATE语句不能执行
OPEN cur;
read_loop: LOOP
-- 提取游标里的数据
FETCH cur INTO V_1.....; -- 4通过游标把 TEMP_TRANSACTION_ALL 表中的数据 放到 V_1 V_2..变量中。
IF done = 0 THEN
LEAVE read_loop;
END IF;
UPDATE stock_date_record SET aaaa= V_1 where ... -- 5 能过游标查询的数据把上面2处的数据做更新
END LOOP;
-- 关闭游标
CLOSE cur;
END WHILE;
END;
这是mysql 查出的隔离级别,
SELECT @@tx_isolation;
"@@tx_isolation"
"REPEATABLE-READ"