MySQL存儲過程--帶參數報錯1064


DELIMITER $$

USE `student`$$

DROP PROCEDURE IF EXISTS `sync_student`$$

CREATE DEFINER=`student`@`%` PROCEDURE `sync_student`(para_name varchar)  ----記住varchar類型的參數一定要設置長度,修改為varchar(50),就OK了
BEGIN                                                                                                                   
-- 定義變量
DECLARE id INT;
DECLARE name varchar;
DECLARE course INT;

DECLARE done INT DEFAULT 0;
-- 定義一個游標
DECLARE curCursor CURSOR FOR
SELECT
    d.name AS name,

   d.course as course    

FROM
   student d
WHERE 1 = 1
AND d.name = para_name ;


-- 如果游標指向沒有記錄,則定義done=1
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done=1;


-- 開始事務
START TRANSACTION;
-- 打開游標
OPEN curCursor;
-- 循環開始
stock_loop:LOOP
-- 獲取游標的值,賦值給變量
FETCH curCursor INTO name;

-- 如果游標已經執行完,則跳出stock_loop 循環
IF done=1 THEN
COMMIT;
LEAVE stock_loop;
END IF;

......


-- 循環結束
END LOOP stock_loop;
-- 關閉當前游標
CLOSE curCursor;
-- 事務提交
COMMIT;

END$$

DELIMITER ;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM