mysql - 必须创建一个临时表才能在过程中查看

标签 mysql stored-procedures oracle11g cursor temp-tables

过程摘要:我创建了一个游标并提取数据并将其插入到我在数据库中创建的表 mm_dummy_table 中。 我不希望数据存储在创建的表中,应该为此创建一个临时表,并且它应该消失。请帮助创建一个临时表来查看我在光标中提取的数据。如何在不使用 user_username like '%a%' 的条件的情况下只获取姓名中包含 A 的人。请帮助我..

DELIMITER //

CREATE DEFINER=root@localhost PROCEDURE PRO_ABC_DUMMY()
BEGIN
    declare v_user_id int;
    declare v_username varchar(100);
    declare dummy_cur cursor for
    SELECT user_id, user_fullname
    FROM m_users
    WHERE User_FullName LIKE '%a%';

    open dummy_cur;

    BLOCK1:BEGIN
        DECLARE EXIT HANDLER FOR NOT FOUND BEGIN END;
        LOOP1:LOOP
            fetch dummy_cur into v_user_id, v_username;
            insert into mm_users_dummy (user_id, user_name)
            values
            (v_user_id, v_username);
        END LOOP loop1;
    END BLOCK1;

    CLOSE dummy_cur;
END//

DELIMITER ;

最佳答案

开始 声明 v_user_id INT; 声明 v_username VARCHAR(100); 声明 dummy_cur 游标为 选择用户 ID、用户全名 来自 m_users WHERE User_FullName LIKE '%a%';

CREATE TEMPORARY TABLE `mtest`(  

user_id INT(11) NOT NULL AUTO_INCRMENT, 用户名 VARCHAR(50), 主键(user_id) );

OPEN dummy_cur;

BLOCK1:BEGIN
    DECLARE EXIT HANDLER FOR NOT FOUND BEGIN END;
    LOOP1:LOOP
        FETCH dummy_cur INTO v_user_id, v_username;
        INSERT INTO mtest (user_id, user_name)
        VALUES
        (v_user_id, v_username);
    END LOOP loop1;
END BLOCK1;

CLOSE dummy_cur;

SELECT * FROM mtest;
END$$

关于mysql - 必须创建一个临时表才能在过程中查看,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35934508/

相关文章:

php - Laravel 嵌套数组的类型转换

mysql dll 永远不会出现在 bin 文件夹中

mysql - Hibernate 更新 OneToMany

mysql 存储过程输出多列

c# - C# 中的 TransactionScope 可以触发 SQL Server 中存储过程的回滚吗?

plsql - 游标循环并继续执行: unexpected behaviour

sql - 在 Oracle 中返回正则表达式的所有匹配项

php - 树结构中的递归php mysql巨大查询

sql-server - 微软 SQL : Suppress return value of stored procedure called in stored procedure

oracle11g - 合并两个 sys_refcursor 的输出