插件的db脚本,创建存储过程失败

2017-09-15 18:20:34
杨金莲
  • 访问次数: 83
  • 注册日期: 2013-06-06
  • 最后登录: 2023-11-17
  • 我的积分: 395
  • 门派等级: 玄清 等级1 居士

你好,自己开发的一个插件,需要创建存储过程,但是报失败,请问有没有解决办法?以下sql在MySQL的管理工具里执行是成功的。

delimiter $$
create procedure `update_boco_product_project`()
begin
    begin
        declare v_work_type varchar(100);
        declare v_work_id bigint;
        declare v_project bigint;
        declare v_product bigint;
        declare done int default false ;
        declare cur cursor for
        (
            select
                pt.work_type,
                pt.work_id,
                pt.project,
                pt.product
            from
                boco_product_project_temp pt
                inner join boco_product_project p on p.work_type = pt.work_type and p.work_id = pt.work_id
            where
                pt.project != p.project
                or pt.product != p.product
        );
        declare exit handler for not found set done = true;
        open cur;
        cur:loop
            fetch cur into v_work_type,v_work_id,v_project,v_product;
            if done then
                leave cur;
            end if;
           
            update boco_product_project set project=v_project,product=v_product where work_type = v_work_type and work_id = v_work_id;
            commit;
        end loop;
        close cur ;
    end;

    begin
        insert into boco_product_project
        select
            pt.*
        from
            boco_product_project_temp pt
            left join boco_product_project p on p.work_type = pt.work_type and p.work_id = pt.work_id
        where
            p.work_id is null
            and p.work_type is null;
        commit;
    end;
    begin
        delete p
        from
            boco_product_project_temp pt
            right join boco_product_project p on p.work_type = pt.work_type and p.work_id = pt.work_id
        where
            pt.work_id is null
            and pt.work_type is null;
        commit;
    end;
end$$
delimiter ;
沙发
2017-09-18 10:22:02
石洋洋
  • 访问次数: 6477
  • 注册日期: 2011-04-06
  • 最后登录: 2024-05-13
  • 我的积分: 96575
  • 门派等级: 幽灵 等级6 修罗
和贵公司别的同事一起调试一下吧
板凳
2017-09-18 16:13:04 回复#1
杨金莲
  • 访问次数: 83
  • 注册日期: 2013-06-06
  • 最后登录: 2023-11-17
  • 我的积分: 395
  • 门派等级: 玄清 等级1 居士

创建存储过程的脚本的正确性是已经在mysql客户端验证过的。

需要咨询您,插件的db脚本中,创建存储过程的脚本如何嵌入?还是目前版本的插件的db脚本不支持创建存储过程?

#3
2017-09-18 17:50:54
石洋洋
  • 访问次数: 6477
  • 注册日期: 2011-04-06
  • 最后登录: 2024-05-13
  • 我的积分: 96575
  • 门派等级: 幽灵 等级6 修罗
可以下载一个官方插件 里面有一个 db 文件夹 存放了需要执行的sql。可以参考:http://www.zentao.net/book/zentaopmshelp/144.html
石洋洋 最后编辑, 2017-09-18 17:51:09
1/1 1