小编Avi*_* T.的帖子

Mysql中的嵌套游标

我有三张桌子.
项目(Id),属性(Id),project_attribute(Id,project_id,attribute_id).

我想创建一个记录project_attribute通过使用来自所有属性表属性表,从每个项目的项目表.

要创建此类记录,我使用以下存储过程.

DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `proj_attr`()
BEGIN   
    DECLARE proj_done, attribute_done BOOLEAN DEFAULT FALSE;    
    declare attributeId int(11) default 0;
    declare  projectId int(11) default 0;
    DECLARE curProjects CURSOR FOR SELECT id FROM project order by id;  
    DECLARE CONTINUE HANDLER FOR NOT FOUND SET proj_done = TRUE;

    OPEN curProjects;
    cur_project_loop: LOOP
    FETCH FROM curProjects INTO projectId;

        IF proj_done THEN
        CLOSE curProjects;
        LEAVE cur_project_loop;
        END IF;

        BLOCK2: BEGIN
        DECLARE curAttribute CURSOR FOR SELECT …
Run Code Online (Sandbox Code Playgroud)

mysql cursor

17
推荐指数
3
解决办法
3万
查看次数

标签 统计

cursor ×1

mysql ×1