SQL觸發器(2)

在實習過程當中涉及到SQL觸發器,在校時未學習過觸發器的知識,於是進行上網自學整理,如下內容爲我對網上資料收集整合,若侵權請聯繫刪除,謝謝。java

原文連接(https://blog.csdn.net/weixin_39941298/java/article/details/81080353)數據庫

1、建立使用觸發器學習

(1)建立只有一個執行語句的觸發器spa

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

eg:建立一個trig_book觸發器,該觸發器在表t_book插入一條數據後,對錶t_bookType的bookNum數量對應的bookTypeId會自動加1.net

create trigger trig_book after insert 

           on t_book for each row 

                  update t_bookType set bookNum = bookNum+1 where new.bookTypeId = t_booktype.id;

INSERT INTO t_book VALUES(NULL,'java好',100,'ke',1);

t_book表:code

 

 t_bookType表:對象

 

 (2)建立多個執行語句的觸發器blog

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

DELIMITER |   數據庫語句   | DELIMITER;//告訴數據庫這時一條語句內容事件

new   old   觸發的兩個過分變量;new:新增一條語句的新增對象;old:刪除一條語句的刪除對象;class

DELIMITER |
create trigger trig_book2 after delete 
    on t_book for each row 
    begin 
          update t_bookType set bookNum = bookNum-1 where old.bookTypeId=t_booktype.id;
 
          insert into t_log values(null,NOW(),'在book表裏刪除了一條數據');
 
          delete from t_test where old.bookTypeId = t_test.id;
    end
|


DELIMITER ;

DELETE FROM t_book WHERE id=5;

2、查看觸發器

(1)SHOWTRIGGERS 語句查看觸發器信息

SHOW TRIGGERS;

(2)在 triggers 表中查看觸發器信息

DROP TRIGGER trig_book2 ;

相關文章
相關標籤/搜索