程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> MySQL學習筆記4-觸發器、MySQL視圖

MySQL學習筆記4-觸發器、MySQL視圖

編輯:MySQL綜合教程

MySQL觸發器 創建只有一個執行語句的觸發器基本形式:

CREATE TRIGGER 觸發器名 BEFORE | AFTER 觸發事件

ON 表名 FOR EACH ROW 執行語句創建具有多個執行語句的觸發器

基本形式:

CREATE TRIGER 觸發器名稱 BEFORE | AFTER 觸發事件

ON 表名 FOR EACH ROW

BEGIN

執行語句列表

END注意:在MySQL中,一個表在相同的時間和相同的觸發時間只能創建一個觸發器,如觸發事件INSERT,觸發時間AFTER的觸發器只能有一個,但是可以定義BEFORE的觸發器。查看觸發器 SHOW TRIGGERS;SELECT * FROM information_schema.triggers;

或者:SELECT * FROM information_schema.triggers WHERE TRIGGER_NAME='觸發器名稱';

information_schema是MySQL中默認存在的庫,用於記錄觸發器信息的數據表。應用觸發器
觸發器中不能包含START TRANSCATION、COMMIT或ROLLBACK等關鍵詞,也不能包含CALL語句。刪除觸發器

DROP TRIGGER 觸發器名稱

MySQL視圖 視圖是一個虛表,是從數據庫中一個或多個表中導出來的表,其內容由查詢定義。數據庫中只存放了視圖的定義,沒有存放視圖中的數據。視圖中的數據是依賴於原來的表中的數據的。視圖是存儲在數據庫中的查詢的sql語句,它主要出於安全和可使復雜的查詢易於理解和 使用。視圖作用: 簡單性安全性邏輯數據獨立性 創建視圖 查看用戶是否具有創建視圖的權限

select select_priv,create_view_priv from mysql.user where user='用戶名';

創建視圖

CREATE [ALGORITHM={UNDEFINDE | MERGE | TEMPTABLE}]

VIEW 視圖名 [(屬性清單)]

AS SELECT 語句

[WITH [CASCADED | LOCAL] CHECK OPTION];創建視圖注意事項 有創建視圖的權限select語句不能包含from子句中的子查詢;select語句不能引用系統或用戶變量select語句不能引用預處理語句參數在存儲子程序內,定義不能引用子程序參數或局部變量在定義中引用的表或視圖必須存在。在定義中不能引用temporary表,不能創建temporary視圖;視圖定義中命名的表必須存在不能將觸發器與視圖關聯在一起在視圖定義中允許使用order by,但是,如果從特定視圖進行選擇,而該視圖使用了具有自己order by的語句,它將被忽略 查看視圖 DESCRIBE/DESC 視圖名;SHOW TABLE STATUS LIKE ‘視圖名’; 修改視圖 CREATE OR REPLACE [ALGORITHM={UNDEFINDE | MERGE | TEMPTABLE}]

VIEW 視圖 [(屬性清單)]

AS SELECT 語句

[WITH [CASCADED | LOCAL] CHECK OPTION]ALTER 更新視圖 視圖中的數據雖然可以更新,但是有很多的限制。一般情況下,最好將視圖作為查詢數據的虛擬表,而不要通過視圖更新數據。刪除視圖 DROP VIEW IF EXISTS <視圖名> [RESTRICT | CASCADE]

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved