搜尋
首頁資料庫Oracleoracle觸發器的寫法是什麼

在oracle中,觸發器是在指定條件成立時,會自動執行定義的語句,寫法為「create [or replace] tigger 觸發器名觸發時間觸發事件on 表名[for each row] begin pl/sql語句end」。

oracle觸發器的寫法是什麼

本教學操作環境:Windows10系統、Oracle 11g版、Dell G3電腦。

oracle觸發器的寫法是什麼

一、觸發器簡介

觸發器的定義就是說某個條件成立的時候,觸發器裡面所定義的語句就會被自動的執行。

因此觸發器不需要人為的去調用,也不能調用。

然後,觸發器的觸發條件其實在你定義的時候就已經設定好了。

這裡面需要說明一下,觸發器可以分成語句級觸發器和行級觸發器。

詳細的介紹可以參考網路上的資料,簡單的說就是語句級的觸發器可以在某些語句執行前或執行後被觸發。而行級觸發器則是在定義的了觸發的表中的行資料改變時就會被觸發一次。

具體舉例:

1、 在一個表格中定義的語句級的觸發器,當這個表被刪除時,程式就會自動執行觸發器裡面定義的操作程序。這個就是刪除表的操作就是觸發器執行的條件了。

2、 在一個表格中定義了行級的觸發器,那當這個表中一行資料改變的時候,例如刪除了一行記錄,那觸發器也會被自動執行了。

二、觸發器語法

觸發器的語法:

create [or replace] tigger 触发器名 触发时间 触发事件
on 表名
[for each row]
begin
 pl/sql语句
end

其中:

  • ##觸發器名:觸發器物件的名稱。由於觸發器是資料庫自動執行的,因此該名稱只是一個名稱,沒有實質的用途。

  • 觸發時間:指明觸發器何時執行,該值可取:

  • before:表示在資料庫動作之前觸發器執行;

  • after:表示在資料庫動作之後觸發器執行。

  • 觸發事件:指明哪些資料庫動作會觸發此觸發器:

  • #insert:資料庫插入會觸發此觸發器;

  • update:資料庫修改會觸發此觸發器;

  • delete:資料庫刪除會觸發此觸發器。

  • 表格 名:資料庫觸發器所在的表。

  • for each row:對錶的每一行觸發器執行一次。如果沒有此選項,則只對整個表執行一次。

觸發器能實現以下功能:

功能:

1、允許/限制對錶的修改

#2、自動產生派生列,例如自增欄位

3、強制資料一致性

4、提供稽核和日誌記錄

5、防止無效的交易處理

6、啟用複雜的業務邏輯

範例

1)、下面的觸發器在更新表 tb_emp之前觸發,目的是不允許在周末修改表:

create or replace trigger auth_secure before insert or update or DELETE
on tb_emp
begin
  IF(to_char(sysdate,'DY')='星期日') THEN
    RAISE_APPLICATION_ERROR(-20600,'不能在周末修改表tb_emp');
  END IF;
END;
/

2)、使用觸發器實作序號自增

建立一個測試表:

create table tab_user(
  id number(11) primary key,
  username varchar(50),
  password varchar(50)
);

建立一個序列:

複製程式碼如下:

create sequence my_seq increment by 1 start with 1 nomaxvalue nocycle cache 20;

建立一個觸發器:

CREATE OR REPLACE TRIGGER MY_TGR
 BEFORE INSERT ON TAB_USER
 FOR EACH ROW--对表的每一行触发器执行一次
DECLARE
 NEXT_ID NUMBER;
BEGIN
 SELECT MY_SEQ.NEXTVAL INTO NEXT_ID FROM DUAL;
 :NEW.ID := NEXT_ID; --:NEW表示新插入的那条记录
END;

向表格插入資料:

insert into tab_user(username,password) values('admin','admin');
insert into tab_user(username,password) values('fgz','fgz');
insert into tab_user(username,password) values('test','test');
COMMIT;

查詢表格結果:SELECT * FROM TAB_USER;

推薦教學:《

Oracle影片教學

以上是oracle觸發器的寫法是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
使用Oracle軟件:數據庫管理及其他使用Oracle軟件:數據庫管理及其他Apr 24, 2025 am 12:18 AM

Oracle軟件除了數據庫管理外,還用於JavaEE應用、數據網格和高性能計算。 1.OracleWebLogicServer用於部署和管理JavaEE應用。 2.OracleCoherence提供高性能的數據存儲和緩存服務。 3.OracleExadata用於高性能計算。這些工具使得Oracle在企業IT架構中扮演了更加多元化的角色。

甲骨文在商業世界中的作用甲骨文在商業世界中的作用Apr 23, 2025 am 12:01 AM

Oracle不僅是數據庫公司,還是雲計算和ERP系統的領導者。 1.Oracle提供從數據庫到雲服務和ERP系統的全面解決方案。 2.OracleCloud挑戰AWS和Azure,提供IaaS、PaaS和SaaS服務。 3.Oracle的ERP系統如E-BusinessSuite和FusionApplications幫助企業優化運營。

Oracle Software正在行動:現實世界中的示例Oracle Software正在行動:現實世界中的示例Apr 22, 2025 am 12:12 AM

Oracle軟件在現實世界中的應用包括電商平台和製造業。 1)在電商平台,OracleDatabase用於存儲和查詢用戶信息。 2)在製造業,OracleE-BusinessSuite用於優化庫存和生產計劃。

Oracle軟件:應用程序和行業Oracle軟件:應用程序和行業Apr 21, 2025 am 12:01 AM

Oracle軟件在多領域大放異彩的原因是其強大的應用性和定制化解決方案。 1)Oracle提供從數據庫管理到ERP、CRM、SCM的全面解決方案,2)其解決方案可根據金融、醫療、製造等行業特性進行定制,3)成功案例包括花旗銀行、梅奧診所和豐田汽車,4)優勢在於全面性、定制化和可擴展性,但挑戰包括複雜性、成本和集成問題。

在MySQL和Oracle之間進行選擇:決策指南在MySQL和Oracle之間進行選擇:決策指南Apr 20, 2025 am 12:02 AM

選擇MySQL還是Oracle取決於項目需求:1.MySQL適合中小型應用和互聯網項目,因其開源、免費和易用性;2.Oracle適用於大型企業核心業務系統,因其強大、穩定和高級功能,但成本較高。

甲骨文的產品:深度潛水甲骨文的產品:深度潛水Apr 19, 2025 am 12:14 AM

Oracle的產品生態包括數據庫、中間件和雲服務。 1.OracleDatabase是其核心產品,支持高效的數據存儲和管理。 2.中間件如OracleWebLogicServer連接不同系統。 3.OracleCloud提供全套雲計算解決方案。

MySQL和Oracle:功能和功能的關鍵差異MySQL和Oracle:功能和功能的關鍵差異Apr 18, 2025 am 12:15 AM

MySQL和Oracle在性能、擴展性和安全性方面各有優勢。 1)性能:MySQL適合讀操作和高並發,Oracle擅長複雜查詢和大數據處理。 2)擴展性:MySQL通過主從復制和分片擴展,Oracle使用RAC提供高可用性和負載均衡。 3)安全性:MySQL提供細粒度權限控制,Oracle則有更全面的安全功能和自動化工具。

甲骨文:數據庫管理甲骨文:數據庫管理Apr 17, 2025 am 12:14 AM

Oracle被稱為數據庫管理的“Powerhouse”是因為其高性能、可靠性和安全性。 1.Oracle是一個關係數據庫管理系統,支持多種操作系統。 2.它提供強大的數據管理平台,具有可擴展性、安全性和高可用性。 3.Oracle的工作原理包括數據存儲、查詢處理和事務管理,支持性能優化技術如索引、分區和緩存。 4.使用示例包括創建表、插入數據和編寫存儲過程。 5.性能優化策略包括索引優化、分區表、緩存管理和查詢優化。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中