数据库存储过程错误 求大佬来帮帮忙看看错误在哪里

这个存储过程的目的是把一张大表根据某一字段拆分成若干小表,比如student表中有stu_no 字段,现在根据学号的不同把每个学号单独放入一张表中
这是我写的存储过程:

CREATE PROCEDURE pro_transfer_method_data
BEGIN
    declare v_stu_no INT;
    declare flag int default 0;
    declare cur1 cursor for select DISTINCT stu_no from student;
    declare continue handler for sqlstate '02000' set flag = 1;
    open cur1;
    fetch cur1 into v_stu_no;

    WHILE(flag!= 1) DO

    call create_table_if_not_exist(CONCAT(v_stu_no, '_mc'));
    call insert_data_to_table(CONCAT(v_stu_no, '_mc'), v_stu_no);

    fetch curl into v_stu_no;

    end WHILE;
    close curl;

END;

报错如下:
[Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'BEGIN
declare v_stu_no INT;
declare flag int default 0;
declare cur1 curso' at line 2

2个回答

CREATE PROCEDURE pro_transfer_method_data改为CREATE PROCEDURE pro_transfer_method_data()

在 open cur1; 前加一个 begin,结尾处增加 end;试试

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问