SQL Server
只要在創建觸發器的時候沒有指定WITH ENCRYPTION 選項,都能查看到源代碼。
在SMSS的對象資源管理器中找到有觸發器的表,展開,在下面的觸發器項目下找到觸發器的名字,雙擊(或者右擊觸發器名字,在菜單中選擇編輯), 就能看到觸發器的源代碼了。
Ⅱ 如何查詢資料庫中的所有觸發器
select name from sysobjects where xtype='TR' --所有觸發器
select name from sysobjects where xtype='P' --所有存儲過程
select name from sysobjects where xtype='V' --所有視圖
select name from sysobjects where xtype='U' --所有表
以上為SqlServer用法
Select object_name From user_objects Where object_type='TRIGGER'; --所有觸發器
Select object_name From user_objects Where object_type='PROCEDURE'; --所有存儲過程
Select object_name From user_objects Where object_type='VIEW'; --所有視圖
Select object_name From user_objects Where object_type='TABLE'; --所有表
以上為Oracle用法
以上,希望對你有所幫助!
Ⅲ java程序 如何查看存儲過程的觸發器是否已經存在mysql資料庫
這個你只能寫sql 語句去資料庫裡面去查詢觸發器是否存在了 不是有個
if exists(SELECT * FROM information_schema.`TRIGGER `;)
drop TRIGGER room_kq_detail_times
Ⅳ 在mysql中如何查看和修改觸發器的代碼請問各位大師,小弟先謝謝了!!!!!!!!!
mysql中,觸發器只能查看,無法修改,如果要修改,只能刪除原有的觸發器,重新創建觸發器,以達到修改的目的。
工具:Navicat Premiu
步驟:
1、正確安裝Navicat Premiu,並確保連接到指定的資料庫。
2、以連接本地資料庫localhost中的badkano資料庫為例。
DROPTRIGGERt_afterdelete_on_tab1;
6、然後重新創建即可。
Ⅳ SQL中如何查詢指定觸發器是否存在
我給你講一下吧,前提是我不知道你是sql server還是oracle:
那就先講sql server:select name from sysobjects where name='trig_insert' and type='tr'這句一般在建觸發器是第一句都寫得,name欄位是你的觸發器名稱,當然你一可以用模糊查詢like關鍵字來查。
其次是oracle ,他的觸發器在user_triggers這張表裡面,select trigger_name,trigger_type,table_name from user_triggers where trigger_name like' to%';
Ⅵ 如何實時監控mysql中的SQL語句的執行情況
首先介紹下 pt-stalk,它是 Percona-Toolkit 工具包中的一個工具,說起 PT 工具包大家都不陌生,平時常用的 pt-query-digest、 pt-online-schema-change 等工具都是出自於這個工具包,這里就不多介紹了。
pt-stalk 的主要功能是在出現問題時收集 OS 及 MySQL 的診斷信息,這其中包括:
1. OS 層面的 CPU、IO、內存、磁碟、網路等信息;
2. MySQL 層面的行鎖等待、會話連接、主從復制,狀態參數等信息。
而且 pt-stalk 是一個 Shell腳本,對於我這種看不懂 perl 的人來說比較友好,腳本裡面的監控邏輯與監控命令也可以拿來參考,用於構建自己的監控體系。
三、使用
接著我們來看下如何使用這個工具。
pt-stalk 通常以後台服務形式監控 MySQL 並等待觸發條件,當觸發條件時收集相關診斷數據。
觸發條件相關的參數有以下幾個:
function:
∘默認為 status,代表監控 SHOW GLOBAL STATUS 的輸出;
∘也可以設置為 processlist,代表監控 show processlist 的輸出;
variable:
∘默認為 Threads_running,代表 監控參數,根據上述監控輸出指定具體的監控項;
threshold:
∘默認為 25,代表 監控閾值,監控參數超過閾值,則滿足觸發條件;
∘監控參數的值非數字時,需要配合 match 參數一起使用,如 processlist 的 state 列;
cycles:
∘默認為 5,表示連續觀察到五次滿足觸發條件時,才觸發收集;
其他一些重要參數:
iterations:該參數指定 pt-stalk 在觸發收集幾次後退出,默認會一直運行。
run-time:觸發收集後,該參數指定收集多長時間的數據,默認 30 秒。
sleep:該參數指定在觸發收集後,sleep 多久後繼續監控,默認 300 秒。
interval:指定狀態參數的檢查頻率,判斷是否需要觸發收集,默認 1 秒。
dest:監控數據存放路徑,默認為 /var/lib/pt-stalk。
retention-time :監控數據保留時長,默認 30 天。
daemonize:以後台服務運行,默認不開啟。
log:後台運行日誌,默認為 /var/log/pt-stalk.log。
collect:觸發發生時收集診斷數據,默認開啟。
∘collect-gdb:收集 GDB 堆棧跟蹤,需要 gdb 工具。
∘collect-strace:收集跟蹤數據,需要 strace 工具。
∘collect-tcpmp:收集 tcpmp 數據,需要 tcpmp 工具。
連接參數:host、password、port、socket。
Ⅶ 怎麼判斷mysql觸發器是否存在
這個你只能寫sql 語句去資料庫裡面去查詢觸發器是否存在了 不是有個 if exists(SELECT * FROM information_schema.`TRIGGER `;) drop TRIGGER room_kq_detail_times
Ⅷ mysql如何查看錶中的所有約束和觸發器
可以從information_schema架構下的系統表查看
-- 查看約束
SELECT * FROM information_schema.`TABLE_CONSTRAINTS`;
-- 查看觸發器
SELECT * FROM information_schema.`TRIGGERS`;