MySQL儲存過程 觸發器 小例子

2021-09-07 14:23:42 字數 1625 閱讀 8095

一、儲存過程

語法:  

create procedure([[in |out |inout ] 引數名 資料類形...])

begin

...end

引數:in 輸入引數

表示該引數的值必須在呼叫儲存過程的時候指定,在儲存過程中修改該引數的值不能被返回,為預設值。

out 輸出引數

該值可在儲存過程內部被改變,並可返回。

inout 輸入輸出引數

呼叫時指定,並且可被改變和返回。

小例子:

二、觸發器

語法:create trigger《觸發器名稱》    --觸發器必須有名字,最多64個字元,可能後面會附有分隔符.它和mysql中其他物件的命名方式基本相象.

--觸發器有執行的時間設定:可以設定為事件發生前或後。

--同樣也能設定觸發的事件:它們可以在執行insert、update或delete的過程中觸發。

on 《表名稱》             --觸發器是屬於某乙個表的:當在這個表上執行插入、 更新或刪除操作的時候就導致觸發器的啟用. 我們不能給同一張表的同乙個事件安排兩個觸發器。

for each row      --觸發器的執行間隔:for each row子句通知觸發器 每隔一行執行一次動作,而不是對整個表執行一次。

《觸發器sql語句》     --觸發器包含所要觸發的sql語句:這裡的語句可以是任何合法的語句, 包括復合語句,但是這裡的語句受的限制和函式的一樣。

--你必須擁有相當大的許可權才能建立觸發器(create trigger),如果你已經是root使用者,那麼就足夠了。這跟sql的標準有所不同。

小例子:

1. insert 觸發器

student 表中增加學生記錄之後,自動將記錄增加到 borrowrecord 表中

2.delete 觸發器

刪除 student 表中的學生記錄之後,自動將 borrowrecord 中的相應記錄刪除。

mysql儲存過程,函式,觸發器例子

1,分割乙個用 間隔的字串的儲存過程 create procedure sp insertjoke lastindex int begin declare i int set i 1 while i0 do begin set part1 mid a,1,p 1 insert myjoke cont...

mysql 觸發器,儲存過程應用例子

1.在員工表上建立delete觸發器,員工資訊刪除則把刪除的資料行插入到離職員工表中,注意,兩個表的結構是一樣的。id,name,age,phone,address delimiter create trigger t yuangong afterdelete on yuangong for eac...

觸發器小例子!

insert 觸發器 create trigger tri infodetails i on info details after insert asdeclare id int begin delete from info details where id select id id from in...