資料庫觸發器和儲存過程

2021-10-05 10:45:34 字數 1873 閱讀 7272

觸發器(trigger)是由事件來觸發某個操作。這些事件包括insert語句、update語句和delete語句。當資料庫系統執行這些事件時,會啟用促發其執行相應的操作。

create trigger 觸發器名 before|after 觸發事件 on 表名 for each row 執行語句

每插入乙個帖子,都希望將版面表中的最後發帖時間,帖子總數字段進行同步更新,用觸發器做效率就很高。校內網、開心網、facebook,發乙個日誌,自動通知好友。

create table board1(id int primary key auto_increment,name varchar(50),articlecount int);

create table article1(id int primary key auto_increment,title varchar(50),bid int references board1(id));

#把分隔符;改為|

delimiter |

create trigger insertarticle_trigger after insert on article1 for each row begin

->update board1 set articlecount+1 where id=new.bid;

->end;

->|

#分隔符設定回來

delimiter ;

insert into article1 value(null,」test」,1);

語法定義:菜鳥教程

1、儲存過程只在建立時進行編譯,以後每次執行儲存過程都不需要再重新編譯,而一般sql語句每執行一次就編譯一次,因此使用儲存過程可以大大提高資料庫執行速度。

2、通常,複雜的業務邏輯需要多條sql語句。這些語句要分別地從客戶機傳送到伺服器,當客戶及和伺服器之間的操作很多時,將產生大量的網路傳輸。如果將這些操作放在乙個儲存過程中,那麼客戶機和伺服器之間的忘了傳輸就會大大減少,降低了網路負載。

3、儲存過程建立一次便可以重複使用,從而可以減少資料庫開發人員的工作量。

4、安全性高,儲存過程可以遮蔽對底層資料庫物件的直接訪問,使用execute許可權呼叫儲存過程,無需擁有訪問地測嗯資料庫物件的顯示許可權。

定義儲存過程:

create procedure insert_student(_name varchar(50),_age int,out_id int)

begin

insert into student value(null,_name,_age);

select max(stuid) into_id from student;

end;

call insert_student(『wf2』,23,@id);

select @id;

jdk怎麼呼叫:

載入驅動

獲取連線

設定引數

執行釋放連線

public static

void

main

(string[

] args)」);

c.registeroutparameter(3

,types.integer)

; c.

setstring(1

,」wangwu」)

; c.

setint(2

,25);

c.execute()

; system.out.

println

(c.getstring(3

));}

catch

(exception e)

}

資料庫儲存過程和觸發器

建立儲存過程 create procedure titles sum title varchar 40 sum money output asselect sum sum price from titles where title like title godeclare totalcost mon...

資料庫觸發器 和 儲存過程

觸發器是指在執行指定表修改操作時強制執行的儲存過程 可以理解為一種特殊的儲存過程 通常用於強制執行不同表之間相互關聯的資料的的完整性或者一致性 因為是在建立表的時候就建立了,所以是不可繞過的,可以用於一些複雜操作場景,用來完成資料完整性。1 ddl 資料定義觸發器 在發生 資料定義語言,如增加表 修...

資料庫儲存過程與觸發器

資料庫儲存過程 儲存過程 stored procedure 是在大型 資料庫系統中,一組為了完成特定功能的sql 語句集,儲存在資料庫中,經過第一次編譯後再次呼叫不需要再次編譯,使用者通過指定儲存過程的名字並給出引數 如果該儲存過程帶有引數 來執行它。優點 重複使用。儲存過程可以重複使用,從而可以減...