虽说现在不用这种,mysql本身已经很忙碌了,还要做这些操作不合适,但有时候别人的代码会写这些,所以记录下查找的、
查询数据库中的存储过程和函数
select `name` from mysql.proc where db = 'xx' and `type` = 'PROCEDURE' //存储过程
select `name` from mysql.proc where db = 'xx' and `type` = 'FUNCTION' //函数
show procedure status; //存储过程
show function status; //函数
查看存储过程或函数的创建代码
show create procedure proc_name;
show create function func_name;
查看视图
SELECT * from information_schema.VIEWS //视图
SELECT * from information_schema.TABLES //表
查看触发器
SHOW TRIGGERS [FROM db_name] [LIKE expr]
SELECT * FROM triggers T WHERE trigger_name=”mytrigger” \G
如果有存储过程,在代码里边找不到调用存储过程的函数。。通常是执行了事件
---show events;查看对应的事件,,下边有解释什么时候执行,执行几次
--如果没有执行则看下事件是否开启
show variableslike '%event_scheduler%'; ---查看事件是否开启
如果没有可以在本次开启,
setglobal event_scheduler = on;
开启了之后我们可以在mysql连接里边看到一个连接
show processlist;
| 278 | event_scheduler | localhost| NULL| ***| 16 | Waiting for*** activation | NULL
也可以在my.ini 里边配置--
[mysqld]
event_scheduler=ON
关闭或开启事件
alter event event_name on completion preserve [enable | disable]
删除事件的话
drop event event_name;
如果是别人的mysql代码的话,我们可以在
~/.mysql.history 里边搜索到创建event 和存储过程的语句
查看是否执行的话,我们可以打开下边的日志临时查看查看完之后记得关闭!
show variables like '%gen%';
+------------------+----------------------------------------------+
| Variable_name| Value|
+------------------+----------------------------------------------+
| general_log| OFF|
| general_log_file | /****/****/mysql/i0b8gnz.log |
+------------------+----------------------------------------------+