mysql存储过程查询所有表_mysql存储过程利用游标查询每个数据库的所有表
DELIMITER $
DROP PROCEDURE listAllDB;
CREATE PROCEDURE listAllDB()
BEGIN
DECLARE no_more_record INT DEFAULT 0;
/*定義2個變量:temp用于記錄游標每次next的值,schemaName表示將所有temp拼接后的值*/
DECLARE schemaName varchar(500) DEFAULT '';
DECLARE temp varchar(20);
/*將賦值查詢返回的所有數據庫名賦值給游標*/
DECLARE cur_record CURSOR FOR SELECT `SCHEMA_NAME` FROM `information_schema`.`SCHEMATA`;
/*表示沒有數據返回時將這個值設置為1*/
DECLARE CONTINUE HANDLER FOR NOT FOUND SET no_more_record = 1;
OPEN cur_record; /*接著使用OPEN打開游標*/
FETCH cur_record INTO temp; /*將游標一次next的數據賦值給temp,即一行數據,如果有多列,可以用,分割賦值給多個變量*/
WHILE no_more_record != 1 DO
SET schemaName = concat(temp,',',schemaName);#拼接數據庫名
/*查詢數據庫下面的所有表*/
select table_schema,table_name from information_schema.tables where table_schema=temp;
FETCH cur_record INTO temp;
END WHILE;
CLOSE cur_record; /*用完后記得用CLOSE把資源釋放掉*/
select schemaName; /*查看所有的數據庫名*/
END $
CALL listAllDB();
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的mysql存储过程查询所有表_mysql存储过程利用游标查询每个数据库的所有表的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 价值股好还是成长股好?价值投资和成长投资
- 下一篇: oracle卸数什么是ctrl文件,Or