MySQL在创建存储过程的时候提示报错,
SELECT v_cs,fk_root_id INTO v_title,v_content FROM enterprise_authority;
SELECT count(1) INTO c FROM enterprise_authority ;
提示语法错误
/*************************************第一模块******************************/
BEGIN -- 处理数据
-- 定义结束标志
DECLARE flag INT DEFAULT 0;
DECLARE a varchar DEFAULT 01;
DECLARE b INT DEFAULT 1;
DECLARE c INT DEFAULT 0;
SELECT count(1) INTO c FROM enterprise_authority ;
DECLARE pid VARCHAR(256); -- 每条记录的临时id
-- 获取循环范围
DECLARE idList CURSOR FOR(SELECT v_cs,fk_root_id FROM enterprise_authority );
-- 当idList循环完毕,设置结束标志flag为1
DECLARE CONTINUE HANDLER FOR NOT FOUND SET flag = 1;
-- 开始循环idList
OPEN idList;
REPEAT
-- 拉取idList的值到pid
FETCH idList INTO v_cs,fk_root_id;
IF NOT flag THEN
-- 更新数据
WHILE (b<=c) DO
-- repeat
-- select a;
WHILE (a <=idList.v_cs) DO
update dt_base_enterprise dt set dt.ent_data_range=concat('DR',a) where dt.ent_data_range like 'DR__' and idList.fk_root_id=dt.fk_root_id;
SET a = a + 1;
END WHILE;
-- select b;
SET b = b + 1;
END WHILE;
END IF;
-- 结束循环
UNTIL flag END REPEAT;
CLOSE idList;
END;
END $$
/***************************第二模块******************************************/
BEGIN
-- 第一步 备份
/************************************存储处理权限数据问题,子机构大于2条****************************/
/*DROP TABLE enterprise_authority;
CREATE TABLE enterprise_authority
SELECT COUNT(fk_root_id) v_cs,fk_root_id,null authority FROM dt_base_enterprise a
WHERE ent_data_range ='DR01' GROUP BY fk_root_id HAVING COUNT(fk_root_id)>=2 ;*/
/*************************************************************************/
-- 按规则处理各类数据
BEGIN -- 处理数据
-- 定义结束标志
DECLARE flag INT DEFAULT 1;
DECLARE a VARCHAR DEFAULT 01;
DECLARE v_title VARCHAR(30);
DECLARE v_content VARCHAR(32);
SELECT v_cs,fk_root_id INTO v_title,v_content FROM enterprise_authority;
DECLARE b INT DEFAULT 1; -- 循环次数
DECLARE v_count INT DEFAULT 0;
WHILE (b<=v_number) DO
WHILE (flag <=v_title) DO
UPDATE dt_base_enterprise dt SET dt.ent_data_range=CONCAT('DR',a)
WHERE dt.ent_data_range LIKE 'DR__' AND v_content=dt.fk_root_id;
SET v_title = v_title - 1;
SET a = a + 1;
IF LENGTH(a=1) THEN
CONCAT('0',a);
END IF ;
END WHILE;
SET v_number = v_number - 1;
END WHILE;
END $$
DELIMITER //
BEGIN -- 处理数据
-- 定义结束标志
DECLARE flag INT DEFAULT 0;
DECLARE a VARCHAR DEFAULT 01;
DECLARE b INT DEFAULT 1;
DECLARE c INT DEFAULT 0;
SELECT COUNT(1) INTO c FROM enterprise_authority ;
DECLARE pid VARCHAR(256); -- 每条记录的临时id
-- 获取循环范围
DECLARE idList CURSOR FOR(SELECT v_cs,fk_root_id FROM enterprise_authority );
-- 当idList循环完毕,设置结束标志flag为1
DECLARE CONTINUE HANDLER FOR NOT FOUND SET flag = 1;
-- 开始循环idList
OPEN idList;
REPEAT
-- 拉取idList的值到pid
FETCH idList INTO v_cs,fk_root_id;
IF NOT flag THEN
-- 更新数据
WHILE (b<=c) DO
-- repeat
-- select a;
WHILE (a <=idList.v_cs) DO
UPDATE dt_base_enterprise dt SET dt.ent_data_range=CONCAT('DR',a) WHERE dt.ent_data_range LIKE 'DR__' AND idList.fk_root_id=dt.fk_root_id;
SET a = a + 1;
END WHILE;
-- select b;
SET b = b + 1;
END WHILE;
END IF;
-- 结束循环
UNTIL flag END REPEAT;
CLOSE idList;
END;
END //
哪报错,错误截图发一下,试一下这个