MySQL进程管理 及导出(表和存储过程)创建语句

2021/7/16 19:06:20

本文主要是介绍MySQL进程管理 及导出(表和存储过程)创建语句,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1. 查询Mysql的进程

-- 查看全部进程
show processlist;  
-- 查询进行中的进程
select *from information_schema.processlist where command not in('Sleep','Killed'); 
-- 查询某个库的进程
select *from information_schema.processlist where db='dw';
-- 杀掉某进程, 从上述进程中获取某任务的首字段即为进程id
kill ***;

2. 导出存储过程sql语句

select 
concat(
char(10),'drop procedure if exists ',ROUTINE_NAME,';',char(10),
'create procedure ',ROUTINE_NAME,'()',char(10),
ROUTINE_DEFINITION,';',char(10)
)
from information_schema.ROUTINES
where routine_schema = 'dw'               --  目标库 
and routine_name in('dw_test');           --  目标存储过程名称

3. 导出含参数的存储过程sql语句

select  
concat(
char(10),'drop procedure if exists ',ROUTINE_NAME,';',char(10),
'create procedure ',ROUTINE_NAME,'(',
 convert(( select param_list from mysql.proc n where  n.db = 'dw'    --  目标库
and  n.name = m.ROUTINE_NAME),char)
,')',char(10),
ROUTINE_DEFINITION,';',char(10)
)
from information_schema.ROUTINES m
where routine_schema = 'dw'                         -- 目标库
and routine_name in('dw_test');                     -- 目标存储过程名称

4. 获取表的建表语句(shell处理)

show create table 其实可以返回,然后借助shell语句截取处理一下

table_sqls=`mysql -h**** -u**** -p**** -P*** -D*** -e"show create table test_table"|awk -F'\t' '{print $2}'`
echo "drop table if exists $line;"$table_sqls";">>$target_sql
echo $target_sql

 



这篇关于MySQL进程管理 及导出(表和存储过程)创建语句的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程