数据库
首页 > 数据库> > MySQL进程管理 及导出(表和存储过程)创建语句

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

 

标签:语句,10,--,ROUTINE,导出,char,MySQL,table,schema
来源: https://www.cnblogs.com/skyEva/p/15021144.html