BEGIN
#Routine body goes here..
-- 定义游标接收参数
DECLARE tmp1 VARCHAR(100);
DECLARE tmp2 VARCHAR(200);
-- 定义结束标志
DECLARE done INT DEFAULT 0;
-- 定义游标
DECLARE companyList CURSOR FOR SELECT name, register_address FROM ads_company_info WHERE flag=0 AND status=0 AND register_address LIKE "%海淀区%" LIMIT 20;
-- 将结束标志绑定到游标
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done=1;
-- 打开游标
OPEN companyList;
-- 开始循环
myloop : LOOP
-- 提取游标里的数据放入接收参数
FETCH companyList INTO tmp1,tmp2;
-- 声明结束的时候
IF done=1 THEN
LEAVE myloop;
END IF;
-- 这里做想做的事
INSERT into test_demo_1013 (name,address) VALUES (tmp1,tmp2);
END LOOP;
-- 关闭游标
CLOSE companyList;
UPDATE test_demo_1013 SET flag=1 WHERE flag=0;
END
游标概念:
一条sql,对应N条资源,取出资源的接口,就是游标,沿着游标,可以一次取出1行。