mysql 获取某个库下面所有表的所有数据(存储过程)

 DROP PROCEDURE IF EXISTS test;/* 删除已存在的存储*/
 CREATE PROCEDURE test()
 BEGIN 
 DECLARE done INT DEFAULT 0; /*用于判断是否结束循环*/
 DECLARE cur VARCHAR(200);/*存储表名称的变量*/
 DECLARE tbs_list CURSOR FOR SELECT TABLE_NAME FROM information_schema.`TABLES` WHERE TABLE_Schema = 'test';
/*定义 设置循环结束标识done值怎么改变 的逻辑*/
 declare continue handler for not FOUND set done = 1; /*done = true;*/
 OPEN tbs_list;
/* 循环开始 */
 REPEAT
 FETCH tbs_list INTO cur;
 if not done THEN
    INSERT INTO 
--     insert into all_base(table_name) VALUES(cur);
    set @tab_nam = CONCAT('select','*',' from ',cur);
    PREPARE tem FROM @tab_nam;
    EXECUTE tem;

-- deallocate prepare tem;/*处理execute结果*/
--     SELECT * FROM CONCAT(cur);
 end if;
 until done end repeat;
 CLOSE tbs_list;
 END;
 DELIMITER ;
 call test();

猜你喜欢

转载自blog.csdn.net/yang1076180972/article/details/82767111