1. 程式人生 > >mysql 獲取某個庫下面所有表的所有資料(儲存過程)

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();