




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、任務1 了解并使用視圖項目7 使用MySQL數(shù)據(jù)庫的視圖與觸發(fā)器任務2 使用觸發(fā)器任務3 認識MySQL數(shù)據(jù)庫中的臨時表任務4 認識MySQL數(shù)據(jù)庫中的事件視圖的定義任務1 了解并使用視圖視圖是基于數(shù)據(jù)表而建立的數(shù)據(jù)庫對象,視圖可以像表一樣使用,但數(shù)據(jù)庫中僅存儲視圖的定義不存儲視圖的數(shù)據(jù),視圖是基于基礎表導出的虛表。視圖的創(chuàng)建方法任務1 了解并使用視圖使用Navicat等圖形工具,在對象管理器中選中視圖節(jié)點,然后單擊“新建視圖”按鈕打開“視圖創(chuàng)建工具”窗口,然后在圖形界面中添加相應的表并選擇相關字段即可定義視圖。使用命令動詞CREATE VIEW,直接在編輯器編寫視圖定義代碼。視圖的創(chuàng)建方法任
2、務1 了解并使用視圖使用CREATE VIEW創(chuàng)建視圖的命令語法格式如下:CREATEALGORITHM=UNDEFINED|MEGER|TEMPTABLE VIEW視圖名 (列 ,.n ) AS SELECT語句 WITH CASCADED|LOCAL CHECK OPTION 視圖的創(chuàng)建方法任務1 了解并使用視圖CREATE VIEW創(chuàng)建語法說明如下:1)視圖名應符合標識符的命名規(guī)則。2)ALGORITHM為可選參數(shù),不表示視圖選擇的算法,其取值有三個UNDEFINED、MEGER和TEMPTABLE。3)(列 ,.n )用于指定視圖中各列的名稱,這里指定的列名與SELECT語句結果集列一
3、一對應。若省略這個列名列表,將直接使用SELECT語句中的列名稱(注意此時不能出現(xiàn)無列名的列)。視圖的創(chuàng)建任務1 了解并使用視圖4)SELECT語句用于定義視圖,SELECT語句中可以使用多個表或其他視圖。5)WITH CASCADED|LOCAL CHECK OPTION為可選參數(shù),表示用于限制通過視圖執(zhí)行的所有UPDATE語句必須在該視圖的權限范圍之內(nèi)。其中CASCADED為默認值,表示更新視圖時要滿足所有相關視圖和基本表的條件,在MySQL 5.7.6版本以后LOCAL表示更新視圖時MySQL會檢查WITH LOCAL CHECK OPTION和WITH CASCADED CHECK O
4、PTION選項的視圖和條件。視圖的創(chuàng)建示例任務1 了解并使用視圖任務需求根據(jù)表7-1中院系學生名單視圖v_yxxsmd的定義,完成v_yxxsmd視圖的創(chuàng)建,并要求視圖中顯示的數(shù)據(jù)按院系編號升序排列。視圖的創(chuàng)建任務1 了解并使用視圖任務實現(xiàn)在編輯窗口編寫代碼如下:CREATE VIEW v_yxxsmdASSELECT d.dept_id,dept_name,s_id,s_nameFROM department d join student s on d.dept_id=s.dept_idORDER BY d.dept_id;視圖的創(chuàng)建任務1 了解并使用視圖創(chuàng)建過程小結1)代碼中省略了視圖名稱
5、后的列名列表,將直接使用SELECT語句中列名作為視圖的列名。2)本例中是基于department和student兩張表的連接查詢生成的視圖,在實際應用的過程中視圖可以基于前面學習過的各種類型的查詢來生成。3)視圖除了可以從基本表中直接查詢生成,還可以從已經(jīng)創(chuàng)建好的視圖中進行查詢來生成。視圖的查看語法任務1 了解并使用視圖在視圖創(chuàng)建完成以后,可以通過三類語句來查看視圖的基本信息、結構和定義文本。1)使用SHOW TABLE STATUS語句查看視圖的基本信息的語法格式為: SHOW TABLE STATUS LIKE 視圖名2)使用DESCREIBE或DESC語句查看視圖的結構信息的語法格式為
6、: DESCRIBE 視圖名 /DESC 視圖名3)適應SHOW CREATE VIEW語句查看視圖的定義文本的語法格式為: SHOW CREATE VIEW 視圖名視圖的查看示例任務1 了解并使用視圖任務需求分別使用SHOW TABLE STATUS、DESCREIBE和SHOW CREATE VIEW語句查看視圖v_yxxsmd的相關信息。視圖的查看示例任務1 了解并使用視圖查看過程小結1)從SHOW TABLE STATUS LIKE v_yxxsmd的執(zhí)行結果來看,Name的值為v_yxxsmd,Comment的值為VIEW,說明該對象為視圖,其他信息均為NULL,說明該對象為虛表。2
7、)從DESCRIBE v_yxxsmd的執(zhí)行結果來看,結果顯示了視圖的字段定義、字段的數(shù)據(jù)類型、是否為空、是否為主/外鍵、默認值和其他信息。3)從SHOW CREATE VIEW v_yxxsmd的執(zhí)行結果來看,結果顯示了視圖的名稱、創(chuàng)建視圖的定義文本、客戶端使用的編碼以及校對規(guī)則等。視圖的作用任務1 了解并使用視圖視圖創(chuàng)建完成以后可以像操作基本表一樣去操作視圖,例如通過如下語句即可完成從院系學生名單視圖v_yxxsmd中篩選出“信息技術學院”的院系名稱和學生姓名的任務。mysql SELECT dept_name,s_name - FROM v_yxxsmd - WHERE dept_nam
8、e=信息技術學院;視圖的作用任務1 了解并使用視圖與直接操縱數(shù)據(jù)表相比,視圖具有以下優(yōu)點和作用。1)使用視圖可以合理地組織數(shù)據(jù),簡化用戶操作。如有了視圖v_yxxsmd,本任務中的查詢代碼就非常變得簡單。2)使用視圖有利于提高數(shù)據(jù)的獨立性。在應用系統(tǒng)開發(fā)中,前端應用通過視圖而不是通過基礎表訪問數(shù)據(jù),這樣當修改基礎表結構時,前端應用就不會受到影響。當升級以前建立的應用系統(tǒng)時,也可以通過建立視圖來模仿以前存在但已被更改的表。3)使用視圖可以提高數(shù)據(jù)的安全性。視圖可以用作安全機制,通過視圖只允許用戶查看或修改其所能看到的數(shù)據(jù),而不是允許其訪問基礎表的所有數(shù)據(jù),有利于提高數(shù)據(jù)的安全性。視圖的刪除任務1
9、 了解并使用視圖當某個視圖不再被需要時,就需要將其從數(shù)據(jù)庫中刪除。在刪除時,可以選擇使用Navicat等圖形工具或直接使用SQL語句。1)圖形工具只需要在對象瀏覽器窗口中選中相應視圖,然后右擊選擇“刪除視圖”即可。2)SQL語句使用DROP VIEW語句刪除視圖,其語法格式如下。 DROP VIEW IF EXISTS 視圖名其中,IF EXISTS為可選參數(shù),用于判斷視圖是否存在,如果存在則執(zhí)行,不存在則不執(zhí)行。例如使用 DROP VIEW IF EXISTS v_yxxsmd語句即可完成視圖 v_yxxsmd的刪除工作。對視圖進行檢查任務1 了解并使用視圖視圖建立后,可以像表一樣使用,可以
10、使用視圖查詢、更新、刪除或插入數(shù)據(jù),但如果視圖創(chuàng)建的過程中帶有檢查選項子句WITH CASCADED CHECK OPTION或WITH LOCAL CHECK OPTION,則在更新視圖時會受到相應的限制。如果帶有檢查選項子句WITH CASCADED CHECK OPTION,則更新視圖時MySQL會循環(huán)檢查視圖的規(guī)則以及底層表或視圖的規(guī)則是否滿足,如果有一個條件不滿足,更新視圖都會報錯從MySQL5.7.6開始如果帶有檢查選項子句WITH LOCAL CHECK OPTION,則更新視圖時MySQL會檢查帶有檢查選項WITH LOCAL CHECK OPTION和WITH CASCADE
11、D CHECK OPTION的視圖規(guī)則,如果有相應的條件不滿足,則更新視圖也會報錯。對視圖進行檢查任務1 了解并使用視圖視圖建立后,可以像表一樣使用,可以使用視圖查詢、更新、刪除或插入數(shù)據(jù),但如果視圖創(chuàng)建的過程中帶有檢查選項子句WITH CASCADED CHECK OPTION或WITH LOCAL CHECK OPTION,則在更新視圖時會受到相應的限制,具體說明如下:1)如果帶有檢查選項子句WITH CASCADED CHECK OPTION,則更新視圖時MySQL會循環(huán)檢查視圖的規(guī)則以及底層表或視圖的規(guī)則是否滿足,如果有一個條件不滿足,更新視圖都會報錯。對視圖進行檢查任務1 了解并使用
12、視圖2)從MySQL5.7.6開始如果帶有檢查選項子句WITH LOCAL CHECK OPTION,則更新視圖時MySQL會檢查帶有檢查選項WITH LOCAL CHECK OPTION和WITH CASCADED CHECK OPTION的視圖規(guī)則,如果有相應的條件不滿足,則更新視圖也會報錯。3)檢查選項子句WITH CASCADED CHECK OPTION及WITH LOCAL CHECK OPTION為創(chuàng)建視圖的可選項,在實際應用的過程中可以根據(jù)實際情況靈活選用。4)如果直接使用WITH CHECK OPTION作用等同于WITH CASCADED CHECK OPTION,正如前面
13、所說 CASCADED為檢查選項的默認值。觸發(fā)器的定義任務2 使用觸發(fā)器觸發(fā)器是一種特殊的存儲過程,可以用來對表實施復雜的完整性約束,保持數(shù)據(jù)的一致性。當觸發(fā)器所保護的數(shù)據(jù)發(fā)生改變時,觸發(fā)器會自動被激活,并執(zhí)行觸發(fā)器中所定義的相關操作,以保證關聯(lián)數(shù)據(jù)的完整性。一般激活觸發(fā)器的事件包括INSERT、UPDATE和DELETE事件。觸發(fā)器的創(chuàng)建任務2 使用觸發(fā)器使用CREATE TRIGGER可以創(chuàng)建所需的觸發(fā)器,具體語法格式如下:CREATE TRIGGER 觸發(fā)器名稱 BEFORE | AFTER DELETE , INSERT , UPDATE ON 表名 FOR EACH ROWBEGIN
14、ql語句 .n END觸發(fā)器的創(chuàng)建任務2 使用觸發(fā)器語法說明:1)觸發(fā)器名稱:指定要創(chuàng)建的觸發(fā)器的名稱,應符合標識符的命名規(guī)則。2)BEFORE|AFTER:是用來指明觸發(fā)器是在激活它的語句之前或之后觸發(fā)。3)DELETE , INSERT , UPDATE :是指在表上執(zhí)行哪些數(shù)據(jù)操作語句時激活觸發(fā)器的關鍵字,必須至少指定一項。4)表名:是指觸事件操作的表的名稱。5)FOR EACH ROW:表示任何一條記錄上的操作滿足觸發(fā)事件都會觸發(fā)該觸發(fā)器。6)sql語句 .n :定義觸發(fā)器觸發(fā)后,要執(zhí)行的SQL操作。觸發(fā)器的創(chuàng)建任務2 使用觸發(fā)器觸發(fā)器工作過程中兩個重要的邏輯表,在觸發(fā)器工作過程中這兩
15、張臨時表和執(zhí)行操作之間的對應關系如表7-2所示:觸發(fā)器的創(chuàng)建示例任務2 使用觸發(fā)器任務需求在student表中創(chuàng)建一觸發(fā)器insert_stu,每次向student表中插入記錄時,自動將插入的記錄備份到備份表student_bak中。觸發(fā)器的創(chuàng)建示例任務2 使用觸發(fā)器任務實現(xiàn)核心代碼如下:1)按照student表的結構創(chuàng)建備份表student_bakmysql CREATE TABLE student_bak ( - S_name varchar(10) NOT NULL, - S_id bigint(8) NOT NULL, - Dept_id tinyint(3) NOT NULL, -
16、S_age tinyint(2) NOT NULL, - S_gender char(2) NOT NULL);Query OK, 0 rows affected (0.05 sec)觸發(fā)器的創(chuàng)建示例任務2 使用觸發(fā)器2)在student表中創(chuàng)建觸發(fā)器insert_stu。mysql DELIMITER #mysql CREATE TRIGGER insert_stu - AFTER insert - ON student - FOR EACH ROW - BEGIN - INSERT INTO student_bak - VALUES(new.s_name,new.s_id,new.dept
17、_id,new.s_age,new.s_gender); - END#觸發(fā)器的創(chuàng)建示例任務2 使用觸發(fā)器觸發(fā)器的驗證1)為了驗證上述觸發(fā)器是否起作用,我們可以向student表中插入如下的記錄。mysql INSERT INTO student VALUES(胡夏,1111998,6,20,男)#Query OK, 1 row affected (0.02 sec)2)如果觸發(fā)器起作用則會將這條記錄插入到備份表student_bak中,此時可以通過查詢語句從student_bak表中查看到該條記錄。3)觸發(fā)器的創(chuàng)建示例任務2 使用觸發(fā)器觸發(fā)器的驗證3)從student_bak表中查看的SQL語
18、句及執(zhí)行結果如下:mysql SELECT * - FROM student_bak#+-+-+-+-+-+| S_name | S_id | Dept_id | S_age | S_gender |+-+-+-+-+-+| 胡夏 | 1111998 | 6 | 20 | 男 |+-+-+-+-+-+1 row in set (0.02 sec)觸發(fā)器的創(chuàng)建示例任務2 使用觸發(fā)器觸發(fā)器的驗證4)從第3)步的結果可以看出,上述觸發(fā)器達到了預期的目的。5)從上面的例子我們還可以得出如下結論: 觸發(fā)器(trigger)是與表事件相關的特殊的存儲過程,它的執(zhí)行不是由程序調(diào)用,也不是手工啟動,而是由事件
19、來觸發(fā),比如當對一個表進行操作( insert,delete, update)時就會激活它執(zhí)行,進而執(zhí)行特定的操作。觸發(fā)器的查看任務2 使用觸發(fā)器查看觸發(fā)器是指查看數(shù)據(jù)庫中已存在的觸發(fā)器的定義、狀態(tài)和語法等信息,可以使用如下方法來進行查看。1)使用SHOW TRIGGERS語句查看觸發(fā)器信息,其語法格式為:SHOW TRIGGER;2)在triggers表中查看觸發(fā)器信息,其語法格式為:SELECT *FROM information_schema.triggersWHERE TRIGGER_NAME=觸發(fā)器名;觸發(fā)器的查看任務2 使用觸發(fā)器說明1)從SHOW TRIGGERS;的執(zhí)行結果來看
20、,結果顯示的是數(shù)據(jù)庫中所有觸發(fā)器的基本信息。由于此時數(shù)據(jù)庫中只有insert_stu觸發(fā)器,所以只顯示了該觸發(fā)器的基本信息。2)從SELECT * FROM information_schema.triggers WHERE TRIGGER_NAME=insert_stu的執(zhí)行結果來看,結果顯示了指定的“insert_stu”觸發(fā)器的詳細信息,如果沒有WHERE子句查看到的會是數(shù)據(jù)庫中所有觸發(fā)器的詳細信息。觸發(fā)器的使用示例任務2 使用觸發(fā)器任務需求在department表中創(chuàng)建BEFROE INSERT 和AFTER INSERT這兩個觸發(fā)器,然后向department表中插入數(shù)據(jù)時,觀察這兩
21、個觸發(fā)器的觸發(fā)順序。觸發(fā)器的使用示例任務2 使用觸發(fā)器任務實現(xiàn)1)首先在數(shù)據(jù)庫中創(chuàng)建一張新表tri_test,用于記錄觸發(fā)器工作過程中插入的信息,該表的創(chuàng)建及執(zhí)行結果如下。mysql CREATE TABLE tri_test - (id int primary key auto_increment, - info varchar(20);Query OK, 0 rows affected (0.05 sec)觸發(fā)器的使用示例任務2 使用觸發(fā)器任務實現(xiàn)1)首先在數(shù)據(jù)庫中創(chuàng)建一張新表tri_test,用于記錄觸發(fā)器工作過程中插入的信息,該表的創(chuàng)建及執(zhí)行結果如下。mysql CREATE TABL
22、E tri_test - (id int primary key auto_increment, - info varchar(20);Query OK, 0 rows affected (0.05 sec)觸發(fā)器的使用示例任務2 使用觸發(fā)器任務實現(xiàn)2)然后創(chuàng)建本任務的觸發(fā)器before_insert_dept和after_insert_dept。mysql DELIMITER #mysql CREATE TRIGGER before_insert_dept - BEFORE insert - ON department - FOR EACH ROW - BEGIN - INSERT INTO
23、 tri_test VALUES(null,before_insert); - END#觸發(fā)器的使用示例任務2 使用觸發(fā)器任務實現(xiàn)mysql CREATE TRIGGER after_insert_dept - AFTER insert - ON department - FOR EACH ROW - BEGIN - INSERT INTO tri_test VALUES(null,after_insert); - END#觸發(fā)器的使用示例任務2 使用觸發(fā)器任務實現(xiàn)3)觸發(fā)器創(chuàng)建好以后,向department中插入一條記錄。代碼及執(zhí)行結果如下。mysql INSERT INTO departm
24、ent VALUES(汽車電子學院,7)#Query OK, 1 row affected (0.02 sec)執(zhí)行結果顯示,記錄插入成功。觸發(fā)器的使用示例任務2 使用觸發(fā)器任務實現(xiàn)4)查看tri_test表中的記錄,執(zhí)行結果如下。mysql SELECT * FROM tri_test#+-+-+| id | info |+-+-+| 1 | before_insert | 2 | after_insert |+-+-+2 rows in set (0.02 sec)觸發(fā)器的使用示例任務2 使用觸發(fā)器程序說明1)查詢結果顯示,before_insert_dept和after_insert_d
25、ept觸發(fā)器均被激活,先激活before_insert_dept觸發(fā)器,然后再激活after_insert_dept觸發(fā)器。2)在激活觸發(fā)器時,對觸發(fā)器中的執(zhí)行語句存在一些限制。例如觸發(fā)器不能包含事務相關的操作(如COMMIT或ROLLBACK等),也不能包含存儲過程的調(diào)用語句CALL等。3)另外在觸發(fā)器執(zhí)行過程中,任何步驟出錯都會阻止程序向下執(zhí)行。但是對于基本表而言,已經(jīng)更新過的記錄是不能回滾的,也就是說更新后的數(shù)據(jù)將繼續(xù)保留在基本表中,因此在設計觸發(fā)器時要慎重考慮。觸發(fā)器的刪除任務2 使用觸發(fā)器為什么要刪除不再需要的觸發(fā)器? 如果不再需要某個觸發(fā)器時,一定要將該觸發(fā)器刪除。如果沒有將這個觸
26、發(fā)器刪除,那么每次執(zhí)行觸發(fā)事件時,都會執(zhí)行觸發(fā)器中的執(zhí)行語句,而執(zhí)行語句會對數(shù)據(jù)庫中的數(shù)據(jù)進行某些操作,這會造成數(shù)據(jù)變化。因此,一定要刪除不需要的觸發(fā)器觸發(fā)器的刪除任務2 使用觸發(fā)器刪除的語法格式及示例刪除觸發(fā)器是指刪除數(shù)據(jù)庫中已經(jīng)存在的觸發(fā)器。在MySQL中使用DROP TRIGGER語句來刪除觸發(fā)器。其語法格式如下。 DROP TRIGGER 觸發(fā)器名例如,在編輯窗口編寫如下代碼并執(zhí)行mysql DROP TRIGGER insert_stu;Query OK, 0 rows affected (0.02 sec)即可完成insert_stu觸發(fā)器的刪除工作。臨時表的定義及分類任務3 認識
27、MySQL數(shù)據(jù)庫中的臨時表臨時表的定義所謂臨時表,是MySQL用于存儲一些中間結果集的表,臨時表只在當前連接可見,當關閉連接時,MySQL會自動刪除表并釋放所有空間。臨時表一般會在一些復雜的SQL操作過程中被自動創(chuàng)建,但也可以由用戶自行創(chuàng)建。臨時表的定義及分類任務3 認識MySQL數(shù)據(jù)庫中的臨時表臨時表的分類按照創(chuàng)建的方式不同,MySQL的臨時表可以分為兩種,一種是用戶使用CREATE TEMPORARY TABLE創(chuàng)建的,稱為外部臨時表,一種是因UNION、ORDER BY、GROUP BY、DISTINCT等復雜SQL操作產(chǎn)生的,稱為內(nèi)部臨時表。臨時表的創(chuàng)建、查看與刪除任務3 認識MySQ
28、L數(shù)據(jù)庫中的臨時表臨時表的創(chuàng)建 臨時表的創(chuàng)建的語法格式與創(chuàng)建普通表的語法格式類似,不同的之處在于增加了關鍵字TEMPORARY,具體語法如下所示。 CREATE TEMPORARY TABLE 表名(列的定義.);臨時表的創(chuàng)建、查看與刪除任務3 認識MySQL數(shù)據(jù)庫中的臨時表臨時表的查看 由于臨時表的特殊性,因此使用SHOW TABLES不會列出臨時表,但是可以使用SHOW CREATE TABLE或DESC命令查看臨時表結構的詳細信息,這兩條命令的語法格式如下所示。 SHOW CREATE TABLE 臨時表名 DESC 臨時表名臨時表的創(chuàng)建、查看與刪除任務3 認識MySQL數(shù)據(jù)庫中的臨時表
29、臨時表的刪除 默認情況下,雖然當你斷開與數(shù)據(jù)庫的連接后,臨時表就會自動被銷毀,但是用戶也可以在當前MySQL會話中使用DROP TABLE命令來手動刪除臨時表,刪除臨時表的語法與刪除普通表的語法相同,具體格式如下。 DROP TEMPORARY TABLE 臨時表名使用臨時表的注意事項任務3 認識MySQL數(shù)據(jù)庫中的臨時表臨時表在MySQL中雖然應用的場景很多,但是在使用的過程還應該注意以下的一些限制。1) 臨時表在 memory、myisam、merge或者innodb上使用,并且不支持mysql cluster(簇)。2)一個臨時表只能被創(chuàng)建它的會話訪問,對其他線程不可見。3) 臨時表名可
30、以與普通表相同,但此時使用show create table 語句,以及增刪改查語句訪問的都是臨時表,直到臨時表被釋放同名的普通表才可見。4) show tables語句不會列出臨時表,在information_schema中也不存在臨時表信息。5) 不能使用rename來重命名臨時表。但是可以alter table rename代替。6) 可以復制臨時表得到一個新的臨時表。7) 但在同一個query語句中,相同的臨時表只能出現(xiàn)一次。8) 相同臨時表不能在存儲函數(shù)中出現(xiàn)多次。事件的定義任務4 認識MySQL數(shù)據(jù)庫中的事件事件(event)是MySQL 5.1版本后引入的新特性。事件是在特定時刻
31、調(diào)用的數(shù)據(jù)庫對象,一個事件可以調(diào)用一次,也可周期性地被調(diào)用,它由一個特定的線程來管理,該線程被稱為“事件調(diào)度器”,在創(chuàng)建事件之前,事件調(diào)度器必須處于打開狀態(tài)。事件調(diào)度器的狀態(tài)任務4 認識MySQL數(shù)據(jù)庫中的事件事件調(diào)度器是MySQL數(shù)據(jù)庫服務器的一部分,負責事件的調(diào)度,它不斷監(jiān)視某個事件是否被調(diào)用。在創(chuàng)建事件之前,事件調(diào)度器必須處于打開狀態(tài),在MySQL中使用全局變量 EVENT_SCHEDULER來監(jiān)控事件調(diào)度器是否開啟,在實際應用中可以使用SHOW VARIABLES LIKE來查看事件調(diào)度器的狀態(tài),并可以通過修改該GLOBAL.EVENT_SCHEDULER的值為ON來打開 MySQL的
32、事件調(diào)度器。事件的創(chuàng)建語法及說明任務4 認識MySQL數(shù)據(jù)庫中的事件事件創(chuàng)建的核心語法CREATE EVENT IF NOT EXISTS event_name ON SCHEDULE schedule ON COMPLETION NOT PRESERVE ENABLE | DISABLE| DISABLE ON SLAVE COMMENT comment DO event_body;事件的創(chuàng)建語法及說明任務4 認識MySQL數(shù)據(jù)庫中的事件事件創(chuàng)建的語法說明1)IF NOT EXISTS:只有在同名事件不存在時才創(chuàng)建,否則忽略。2)ON SCHEDULE schedule: 定義執(zhí)行的時間和時
33、間間隔。3)ON COMPLETION NOT PRESERVE: 定義事件是一次執(zhí)行還是永久執(zhí)行,默認為一次執(zhí)行,即NOT PRESERVE。4)ENABLE | DISABLE | DISABLE ON SLAVE: 表示設定事件的狀態(tài),Enable表示系統(tǒng)將執(zhí)行這個事件,Disable表示系統(tǒng)不執(zhí)行該事件,在主從環(huán)境下的event操作中,若自動同步主服務器上創(chuàng)建事件的語句,則會自動加上DISABLE ON SLAVE。5)COMMENT comment:定義事件的注釋。6)DO event_body:用于指定事件執(zhí)行的動作,可以是一條SQL語句也可以是一個存儲過程或一個BEGIN.END
34、語句塊。事件的創(chuàng)建示例任務4 認識MySQL數(shù)據(jù)庫中的事件任務需求創(chuàng)建名為event_datetime的事件,該事件可以每隔一分鐘將系統(tǒng)的當前系統(tǒng)的日期時間插入到測試表test中。事件的創(chuàng)建示例任務4 認識MySQL數(shù)據(jù)庫中的事件任務分析創(chuàng)建該事件可以使用CREATE EVENT語句,創(chuàng)建的事件名稱為event_datetime,是一個重復事件,該事件啟動后執(zhí)行的操作為,每隔一分鐘將系統(tǒng)的當前系統(tǒng)的日期時間插入到測試表test中,假設est表只包含序號(xh)和日期(rq)兩列,其創(chuàng)建的語句如下:mysql CREATE TABLE test - (xh int primary key auto_increment, - rq datetime);Query OK, 0 rows affected (0.03 sec)事件的創(chuàng)建示例任務4 認識MySQL數(shù)據(jù)庫中的事件任務實現(xiàn)創(chuàng)建event_datetime事件的代碼及執(zhí)行結果如下。mysql CREATE EVENT event_datetime - ON SCHEDULE - EVERY 1 MINUTE - DO - INSERT INTO test(rq) VALUES(
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 云南省曲靖市高中化學 第三章 金屬及其化合物 3.2.2 鋁的重要化合物教學設計 新人教版必修1
- 臨床執(zhí)業(yè)醫(yī)師考試多樣題型試題及答案
- 2025年公共衛(wèi)生執(zhí)業(yè)醫(yī)師考試公共健康干預試題及答案
- 信息系統(tǒng)項目管理師重要概念試題及答案
- 2025年稅務師考試考生解題思路清晰化的訓練方法與手段試題及答案
- 2024年醫(yī)學基礎知識臨床應用重要性試題及答案
- 2025年稅務師考試試題解答技巧試題及答案
- 2025年育嬰師考試兒童營養(yǎng)知識試題及答案
- 企業(yè)應對稅務檢查的策略試題及答案
- 2024年西醫(yī)臨床專業(yè)考試技巧的深度探討試題及答案
- 2024年實驗室保密規(guī)定
- 2024年廣東省廣州市市中考英語試卷真題(含答案解析)
- 2024年國家林業(yè)和草原局華東調(diào)查規(guī)劃設計院招聘高校畢業(yè)生10人歷年(高頻重點復習提升訓練)共500題附帶答案詳解
- 2023年拉薩市“一考三評”備考試題庫-下(多選、判斷題部分)
- 資產(chǎn)評估收費管理辦法(2009)2914
- 2024-2029全球及中國柚子果實提取物行業(yè)市場發(fā)展分析及前景趨勢與投資發(fā)展研究報告
- 公共部位裝修合同
- 2024年廣東省惠州市惠城區(qū)中考二模物理試卷
- 2024年山東省青島市部分學校九年級中考二模數(shù)學試題(含答案)
- 中考語文專題復習十議論性文本閱讀市賽課公開課一等獎省名師獲獎課件
- 醫(yī)院化糞池清掏合同
評論
0/150
提交評論