關於觸發器

2021-10-06 07:19:23 字數 1573 閱讀 5687

觸發器的定義

觸發器是乙個特殊的儲存過程,主要是通過事件來觸發而被執行的。它可以強化約束,來維護資料的完整性和一致性,可以跟蹤資料庫內的操作從而不允許未經許可的更新和變化。可以聯級運算。如,某錶上的觸發器上包含對另乙個表的資料操作,而該操作又會導致該錶觸發器被觸發。

觸發器的作用

觸發器是乙個特殊的儲存過程,主要是通過事件來觸發而被執行的。它可以強化約束,來維護資料的完整性和一致性,可以跟蹤資料庫內的操作從而不允許未經許可的更新和變化。可以聯級運算。如,某錶上的觸發器上包含對另乙個表的資料操作,而該操作又會導致該錶觸發器被觸發。

*select * from booktype

select * from books

insert books values(『建築測量』,『測得很準』,2)

–當我在書籍表插入一條資料時,觸發乙個事件

–這個事件,將會自動在分類表,將該書籍對應的類別的庫存加-1

go–觸發器

create trigger tri_add

on books after insert

as–修改分類表的庫存

declare @typeid int

select @typeid=typeid from inserted

update booktype set nums =nums+1 where id=@typeid

–系統預設有兩個表

inserted 裝新增的資料

deleted 裝舊資料

boostrap 太爽了 2(修改之前) deleted

boostrap 太爽 3(修改之後的資料) inserted

select * from booktype

select * from books

delete from books where id=9

gocreate trigger tri_delete

on books after insert

as–修改分類表的庫存

declare @typeid int

select @typeid=typeid from deleted

update booktype set nums =nums-1 where id=@typeid --@剛刪除的那條資料分類id

delete from books where typeid=3

gocreate trigger tri_update

on books for update

asdeclare @newtypeid int --@修改後的分類

declare @oldtypeid int --@修改之前的分類

select @newtypeid=typeid from inserted

select @oldtypeid=typeid from deleted

update booktype set nums=nums-1 where id=@oldtypeid

update booktype set nums=nums+1 where id=@newtypeid

*

關於觸發器

dml觸發器 語句觸發器 當執行dml語句時被隱含執行的觸發器 語法 create or replace trigger t update a event1 or event2 or event3 on table name pl sql block 行觸發器 當執行dml語句時,每作用一行被觸發一...

關於觸發器

inserted存放進行insert和update操作後的資料,deleted存放進行delete和update操作前的資料,他們是觸發器執行時用到的兩張特殊表,也可以說是種臨時表,是在進行啟用觸發器時由系統自動生成 如你給了資料庫裡兩張表,一張學生表 student 一張成績表 score 當你想...

關於Mysql 觸發器

首先,測試版本 mysql 5.6。然後再看觸發器的語法 create definer triggertrigger name trigger timetrigger event ontbl namefor each row trigger body trigger time trigger eve...