如何使用MySQL的Stored Procedure與Trigger

一月 8, 2008

MySQL在5.0版後增強了資料庫stored procedure(5.0)與trigger(5.0.2)的功能, 根據MySQL自己的定義:

A stored procedure is a procedure (like a subprogram in a regular computing language) that is stored (in the database).

Correctly speaking, MySQL supports “routines" and there are two kinds of routines: stored procedures or functions.

也就是MySQL支援routines: stored procedure與functions, 而針對table的INSERT/UPDATE/DELETE動作,更加入了trigger


這幾個更新功能讓MySQL更具備大型資料庫的架勢, 以下就來談談如何測試這幾個功能:

(1)Stored Procedure

使用MySQL的stored procedure有幾個方式:
dos command/phpmyadmin/EMS的MySQL Manager

首先以DOS command進入MySQL

接著可以打入 show procedure status; 來看看有無既存的stored procedures

現在我們進入使用test這個database (MySQL預設已經有的資料庫)

use test;
show tables;
desc tbl;

看到了tbl這個表格的結構 …

現在我們建一個stored procedure

先使用宣告 delimiter 來告訴MySQL結束字元是 //

然後打入以下

Create procedure mytest1()
update tbl set f3=concat(f1,f2);

這樣去呼叫mytest1後, 就把f1,f2兩個字串串起來存到f3了 !

再來建立一個傳變數的stored procedure

(2)Trigger

首先看看表格結構: tbl與tbl2

再來建立trigger, 並看看效果
當有資料插入tbl時, 把f1欄位也插入到tbl2的f1欄位

看看我們剛建入的trigger

因此只要對於SQL有認識, 使用stored procedure與trigger應該不成問題…
但是頭痛的是…MySQL與MS SQL的語法又略有差異, 因此下次也來談談MS SQL, 以及為何要使用stored procedure及trigger … 待續了

敬請留言

你的回應對我們是很重要的. 你的電子郵件將不會被公開.

請等待 ...
*
Loading Facebook Comments ...