1. 程式人生 > >MySQL(檢視、觸發器)

MySQL(檢視、觸發器)

day61

參考:http://www.cnblogs.com/wupeiqi/articles/5713323.html

檢視

 

檢視:給某個查詢語句設定別名,日後方便使用    
            
        - 建立
            create view 檢視名稱 as  SQLs語句
            
            PS: 檢視是虛擬的  

不存在insert
        - 修改
            alter view 檢視名稱 as  SQL語句
            
        - 刪除
            drop view 檢視名稱;

 

觸發器

當對某張表做:增刪改操作時,可以使用觸發器自定義關聯行為

 

create trigger 觸發器名稱 before insert on tb1 for each row

begin

      .......

end

每在插入一行前,先執行begin~end中內容。

查詢時用不到觸發器

#遇到;不能完整執行需要將中止符修改
-- delimiter//
-- create trigger t1 before INSERT on student for each row
-- BEGIN
-- INSERT INTO teacher(tname) values('觸發器'); #表示寫完了 -- -- END// -- delimiter; -- insert into student(gender, class_id, sname) values("女",1,'觸發');#插入兩行則觸發兩次

執行觸發器後,觸發器一直存在。

觸發器執行過之後,一直存在,不需要時,需要刪除。

drop trigger t1;

 

插入學生的資料同樣插入老師的表中 NEW

#插入學生的資料再插入老師的表中
-- delimiter//
-- create trigger t1 before INSERT on student for each row
-- BEGIN
--     INSERT INTO teacher(tname) values(NEW.sname);  #表示寫完了
-- 
-- END//
-- delimiter;

insert into student(gender, class_id, sname) values("女",1,'啦啦');#插入兩行則觸發兩次

先執行觸發器,結束後註釋(觸發器已存在),再執行insert語句,資料插入student和teacher表中。

 

NEW,表示新資料,insert,   update(既有新資料,更新為的資料)

OLD,表示老資料,delete,   update(又有老資料,被更新資料)