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 |

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









 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM