mysql觸發外部程序,mysql觸發器調用外部程序

本文目錄一覽:

mysql 觸發器 怎麼使用 函數

語法如下:

CREATE TRIGGER trigger_name trigger_time trigger_event

ON tbl_name FOR EACH ROW trigger_stmt

觸發程序是與表有關的命名數據庫對象,當表上出現特定事件時,將激活該對象。

觸發程序與命名為tbl_name的表相關。tbl_name必須引用永久性表。不能將觸發程序與臨時表表或視圖關聯起來。

trigger_time是觸發程序的動作時間。它可以是BEFORE或AFTER,以指明觸發程序是在激活它的語句之前或之後觸發。

trigger_event指明了激活觸發程序的語句的類型。trigger_event可以是下述值之一:

· INSERT:將新行插入表時激活觸發程序,例如,通過INSERT、LOAD DATA和REPLACE語句

Mysql觸發器或存儲過程中能否調用dll?

使用非SQL格式dll,也就是平時所寫的,如果打死也不明白就用他就可以。

dll需要事先先註冊,

註冊是:regsvr32 名字.dll

卸載是:regsvr32 /u 名字.dll

[vb] view plain copy

CREATE TRIGGER [名稱] ON [表名]

AFTER INSERT, UPDATE, DELETE

AS

DECLARE @hr int

DECLARE @obj int

DECLARE @out varchar(200)

exec @hr = sp_oacreate ‘[名稱空間|工程名].[類名]’, @obj out

IF @hr = 0

BEGIN

exec @hr = sp_oamethod @obj,'[函數名]’,@out output,'[參數1]’,'[參數2]’,…'[參數N]’

if @hr = 0

BEGIN

print @out

END

END

使用SQL格式的DLL

以下這代碼要放到master數據庫執行

[c-sharp] view plain copy

CREATE PORC [名字] AS

BEGIN

DECLARE @out varchar(200)

EXEC exec sp_addextendedproc ‘[函數名]’, ‘[名稱空間|工程名

.dll’ –添加dll進來

EXEC @out = [函數名] [參數1] [參數2] … [參數N] –注意:函數名前不能用@函數名和參數之間,參數和參數之間,不能用,,我用過,報錯了…

EXEC exec sp_sp_dropextendedproc'[函數名]’ –這裡就是卸載了

直接執行外部程序,例如exe,黑客愛好這代碼

上面的代碼黑客也愛好,為什麼?我才不會告訴你他喜歡用sp_addextendproc來加載xp_cmdshell

[c-sharp] view plain copy

–以下代碼不是順序執行,只是說明

EXEC sp_configure ‘show advanced options’, 1;RECONFIGURE;EXEC sp_configure ‘xp_cmdshell’, 1;RECONFIGURE; — 開啟xp_cmdshell,幾乎不需要執行,多數人不會主要到

EXEC sp_configure ‘show advanced options’, 1;RECONFIGURE;EXEC sp_configure ‘xp_cmdshell’, 0;RECONFIGURE; — 這自然是關閉嘍,要做啥非法事的話,就不要執行這句。

EXEC sp_addextendedproc xp_cmdshell,@dllname =’xplog70.dll’declare @o int –這句是如果不能執行xp_cmdshell時候,例如報127錯誤時修復使用

sp_addextendedproc ‘xp_cmdshell’,’xpsql70.dll’ — 同上

–以下是使用xp_comshell

–有返回值

DECLARE @out int

EXEC @out = xp_cmdshell ‘[文件名]’ ‘[參數1]’ ‘[參數2]’ … ‘[參數N]’

無返回值

EXEC xp_comshenll'[文件名]’ ‘[參數1]’ ‘[參數2]’ … ‘[參數N]’,no_output

Mysql觸發器可以調用Java或者js程序嗎

調用js就有點複雜了

調用java用輪循的方式,java循環去查數據庫,根據相應的規則執行java代碼

怎樣使用Mysql新建觸發器

使用Mysql新建觸發器的方法:

1、首先,需要確定自己的Mysql數據庫的版本,因為my sql數據庫是從5.0.2版本才開始支持觸發器的。

2、在電腦的dos命令界面中輸入 mysql –version,來獲取mysql的版本號,注意version的兩個橫線和之前的mysql是有一個空格的。

3、上一步獲取了mysql版本號,就開始建立觸發器。採用以視圖加代碼的方式創建,在數據表中找到要執行刪除操作的表,然後右鍵設計表

4、這樣就打開了表的設計頁面,可以看到有一個觸發器選項卡,點擊“觸發器”

5、可以看到對應的選項,在名裡面添加需要新建的觸發器的名字,在觸發選項中選擇before或者after,然後在插入、更新、刪除三個選項中勾選一個。

6、這樣們就建立了一個名為“datri”的觸發器,在刪除操作執行之後觸發

7、然後在下面的定義下面的框中輸入需要執行的操作。然後點擊sql預覽,可以看到整個觸發器的代碼

8、最後就是保存了,由於做的是觸發器,保存之後,在執行刪除操作時,這個觸發器才相當於被執行。

原創文章,作者:OEKLJ,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/318079.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
OEKLJ的頭像OEKLJ
上一篇 2025-01-11 16:28
下一篇 2025-01-11 16:28

相關推薦

  • 如何修改mysql的端口號

    本文將介紹如何修改mysql的端口號,方便開發者根據實際需求配置對應端口號。 一、為什麼需要修改mysql端口號 默認情況下,mysql使用的端口號是3306。在某些情況下,我們需…

    編程 2025-04-29
  • Python程序需要編譯才能執行

    Python 被廣泛應用於數據分析、人工智能、科學計算等領域,它的靈活性和簡單易學的性質使得越來越多的人喜歡使用 Python 進行編程。然而,在 Python 中程序執行的方式不…

    編程 2025-04-29
  • python強行終止程序快捷鍵

    本文將從多個方面對python強行終止程序快捷鍵進行詳細闡述,並提供相應代碼示例。 一、Ctrl+C快捷鍵 Ctrl+C快捷鍵是在終端中經常用來強行終止運行的程序。當你在終端中運行…

    編程 2025-04-29
  • Python程序文件的拓展

    Python是一門功能豐富、易於學習、可讀性高的編程語言。Python程序文件通常以.py為文件拓展名,被廣泛應用於各種領域,包括Web開發、機器學習、科學計算等。為了更好地發揮P…

    編程 2025-04-29
  • Python購物車程序

    Python購物車程序是一款基於Python編程語言開發的程序,可以實現購物車的相關功能,包括商品的添加、購買、刪除、統計等。 一、添加商品 添加商品是購物車程序的基礎功能之一,用…

    編程 2025-04-29
  • 爬蟲是一種程序

    爬蟲是一種程序,用於自動獲取互聯網上的信息。本文將從如下多個方面對爬蟲的意義、運行方式、應用場景和技術要點等進行詳細的闡述。 一、爬蟲的意義 1、獲取信息:爬蟲可以自動獲取互聯網上…

    編程 2025-04-29
  • Vb運行程序的三種方法

    VB是一種非常實用的編程工具,它可以被用於開發各種不同的應用程序,從簡單的計算器到更複雜的商業軟件。在VB中,有許多不同的方法可以運行程序,包括編譯器、發布程序以及命令行。在本文中…

    編程 2025-04-29
  • Python一元二次方程求解程序

    本文將詳細闡述Python一元二次方程求解程序的相關知識,為讀者提供全面的程序設計思路和操作方法。 一、方程求解 首先,我們需要了解一元二次方程的求解方法。一元二次方程可以寫作: …

    編程 2025-04-29
  • 如何使用GPU加速運行Python程序——以CSDN為中心

    GPU的強大性能是眾所周知的。而隨着深度學習和機器學習的發展,越來越多的Python開發者將GPU應用於深度學習模型的訓練過程中,提高了模型訓練效率。在本文中,我們將介紹如何使用G…

    編程 2025-04-29
  • Python操作MySQL

    本文將從以下幾個方面對Python操作MySQL進行詳細闡述: 一、連接MySQL數據庫 在使用Python操作MySQL之前,我們需要先連接MySQL數據庫。在Python中,我…

    編程 2025-04-29

發表回復

登錄後才能評論