mysql 存储过程及事件

虽说现在不用这种,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 variables like '%event_scheduler%'; ---查看事件是否开启

如果没有可以在本次开启,

set global 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 |

+------------------+----------------------------------------------+









原文地址:https://www.cnblogs.com/aoxueshou/p/11224951.html