雖說現在不用這種,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 |
+------------------+----------------------------------------------+