oracle 觸發器trigger(主鍵自增長)

2022-02-21 09:31:44 字數 1831 閱讀 2953

觸發器我們也可以認為是儲存過程,是一種特殊的儲存過程。

儲存過程:有輸入引數和輸出引數,定義之後需要呼叫

觸發器:沒有輸入引數和輸出引數,定義之後無需呼叫,在適當的時候會自動執行。

(資料的新增、修改、刪除)操作的時候

儲存過程

觸發器create proc proc_name

--宣告輸入引數和輸出引數

as--過程體

gocreate triggertri_student_deleteon student for delete

asgo

:觸發器是在對應的操作執行完成之後才執行的

sqlserver的資料字典中,提供了一張表deleted使用者儲存最後一次執行刪除的資料

create

trigger tri_student_delete on student for

delete

asprint

'這是我們的第乙個觸發器';

select

*from

deleted;

gocreate

trigger tri_student_insert on student for

insert

asprint

'這是tri_student_insert';

gocreate

trigger tri_student_delete_insert on student for

insert,delete

asprint

'觸發器';

go--

刪除乙個學生資訊,如果學生的年齡<21,則不進行刪除

create

trigger tri_stu_delete on student for

delete

asdeclare

@age

intselect

@age

=sage from deleted--

deleted儲存執行刪除的資料

if(@age

<21)

begin

raiserror('

學生年齡太小,手下留情!

',18,11

);

rollback;--

撤銷執行的操作

endgo

序列

create

sequence gygddj_cfjczb_sequence

increment by1

--每次加幾個

start with1--

從1開始計數

nomaxvalue --

不設定最大值,設定最大值:maxvalue 9999

nocycle --

一直累加,不迴圈

cache 10;

可以與序列配合使用(實現自增)

create

trigger

gygddj_cfjczb_sequence before

insert

on gygddj_cfjczb for each row /*

對每一行都檢測是否觸發

*/begin

select gygddj_cfjczb_sequence.nextval into:new.autoid from

dual;

end;

SQL Server 建立觸發器(trigger)

觸發器簡介 觸發器是一種特殊的儲存過程,它的執行不是由程式呼叫,也不是手動執行,而是由事件來觸發。觸發器是當對某乙個表進行操作。例如 update insert delete這些操作的時候,系統會自動呼叫執行該錶上對應的觸發器。觸發器分類 1 dml 資料操縱語言 data manipulation...

oracle資料庫觸發器使用 trigger

1.更新前觸發,不允許週日修改 create or replace trigger auth secure before insert or update or delete on tb emp begin if to char sysdate,dy 星期日 then end if end 2.自增...

ORACLE觸發器 行級觸發器

行級觸發器 本章介紹行級觸發器機制。大部分例子以insert出發器給出,行級觸發器可從insert update delete語句觸發。1 介紹 觸發器是儲存在資料庫已編譯的儲存過程,使用的語言是pl sql,用編寫儲存過程一樣的方式編寫和編譯觸發器。下面在sql plus會話中建立和示例乙個簡單的...