首頁  >  文章  >  資料庫  >  Oracle使用觸發器和mysql中使用觸發器的案例比較

Oracle使用觸發器和mysql中使用觸發器的案例比較

黄舟
黄舟原創
2017-01-18 11:08:391601瀏覽

Mysql關係型資料庫管理系統

MySQL是一個開放式原始碼的小型關聯式資料庫管理系統,開發者為瑞典MySQL AB公司。 MySQL被廣泛地應用在Internet上的中小型網站。由於其體積小、速度快、整體擁有成本低,尤其是開放原始碼這一特點,許多中小型網站為了降低網站總體擁有成本而選擇了MySQL作為網站資料庫。


這篇文章主要介紹了Oracle使用觸發器和mysql中使用觸發器的案例比較,本文透過範例講解,給大家介紹的非常詳細,需要的朋友參考下

一、觸發器

  1.觸發器在資料庫裡以獨立的物件存儲,

  2.觸發器不需要調用,它由一個事件來觸發運行

  3.觸發器不能接收參數

『『舉個例子:校內網、開心網、facebook,當你發一個日誌,自動通知好友,其實就是在增加日誌的時候做一個出發,再向表中寫入條目。

  --觸發器的效率很高

    舉例:論壇的發帖,每插入一個帖子都希望將版面表中的最後發帖時間,帖子總數字段進行同步更新,這時使用觸發器效率會很高。

二、Oracle 使用PL/SQL 編寫觸發器

1.--PL/SQL建立觸發器的一般語法

create [or replace] trigger trigger_name
{before | after}
{insert | delete | update [of column[,column ... ]]} on table_name
[for each row]
[where condition]
--trigger_body;
begin 
end;

2.--練習

--问题3.使用:old 和 :new 操作符
create or replace trigger tri_update
after
update on employees
for each row 
begin
  dbms_output.put_line('更新前:'||:old.salary||' 更新后:'||:new.salary);
end;
--问题2.编写一个触发器,在向 emp 表中插入记录时 打印'hello'
create or replace trigger tri_update
after
insert on emp
begin
  dbms_output.put_line('ok');
end;
--问题1.一个helloworld级别的触发器
--创建一个触发器,在更新employees表的时候触发
create or replace trigger tri_update
after
update on employees
for each row --想在最后执行完打印一个ok,把这句话去掉
begin
  dbms_output.put_line('ok');
end;
--执行
update employees
set salary = salary+1
where department_id = 80

三、在MySql 使用觸發器

rereee Oracle使用觸發器和mysql中使用觸發器的案例比較的內容,更多相關內容請關注PHP中文網(www.php.cn)!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn