儲存過程,Event事件,簡單易懂,志偉隨筆

2021-09-19 07:51:42 字數 1468 閱讀 9051

一張,一下午的時間沒了,直接上圖,然後慢慢講解

先解釋下每一行的sql啥意思

truncate table `table`;
刪除表中資料,讓他從0開始增長

update `line_table` set  time = date_add(time,interval 1 day)
往後加一天date_add,向前加一天就是date_sub,兩個基本函式而已,沒啥意義

create event if not exists e_test 

on schedule every 3 second

do call test ();

執行儲存過程test,這是乙個event事件,寫的有儲存過程的話直接call儲存過程名字就可以了,如果想直接執行sql直接do後面直接寫sql就可以,親測也可以實現

show variables like '%sche%';
檢視event事件是否開啟,這個很重要,第一次執行儲存過程沒反應,找了好久的錯誤才找到,嗯,這個切記,一定要開啟事務

set global event_scheduler=1;
將時間任務開啟0是關,1是開,所以在這裡設定為1

alter event e_test on completion preserve enable;
同理enable是開,disable就是關drop event if exists e_test

刪除事件,盡量用if exists判斷一下,因為如果在你刪除的時候萬一不存在這個事件,不就報錯了嗎,多寫兩個單詞少個錯誤提示挺好的

create procedure test () 

begin

update xczh.line_table set time = date_add(time,interval 1 day);

end;

儲存過程,就是乙個proceduer,建立乙個儲存過程,然後begin開始end結束,當然也有複雜的儲存過程,多新增一些條件罷了也就這麼多吧,至於觸發器就不寫了,那個東西用的比較多,比較熟悉,說白了就是特殊的儲存過程,盡量少用觸發器,因為占用記憶體比較大,針對那些不經常改變的錶用一下還是挺好的,如果經常改動的表,不建議使用觸發器,

儲存過程例子 易懂

begin declare proname varchar 100 儲存過程名稱 declare result varchar 1 執行結果 declare tablename varchar 100 表名 定義當前任務出現執行異常時 繼續執行其他任務 1,exit 發生錯誤時退出當前 塊 可能是子...

laravel事件event簡單例項

生成事件類 監聽類 php artisan event generate事件類blo iew中寫入要觸發的事件 use illuminate broadcasting channel use illuminate queue serializesmodels use illuminate broad...

python 事件event簡單用法

在併發程式設計中,涉及到了時間event的使用,首先要先了解到event上線程threading模組中的乙個類。具體的用法有 event.set 設定標誌位 event.wait 等待設定標誌位 event.clear 清除標誌位 廢話不說,看栗子 from threading import eve...