mysql中的觸發器是由insert、update和delete等事件來觸發某種特定操作,滿足觸發器的觸發條件,數據庫就會執行觸發器中定義的程序語句,并且觸發器的執行語句可能只有一個,也可能有多個。那怎么實現創建觸發器,具體操作如下:
1.首先,在數據庫world下找到“觸發器”,鼠標右鍵“創建觸/發器”,彈出輸入新觸發器名稱,填寫名稱“city_trigger”,
如下圖所示:
2.輸入完畢,單擊“創建”按鈕,生成city_trigger,
如下圖所示:
3.為了不影響其他表結構,這里新建一張數據庫表t_city_info,代碼如下:
CREATE?TABLE?`world`.`t_city_info`(?? ??`id`?INT(8)?NOT?NULL?AUTO_INCREMENT?COMMENT?'ID', ??`city_code`?INT(4)?COMMENT?'城市編碼', ??`city_name`?VARCHAR(20)?COMMENT?'城市名稱', ??`city_detail`?VARCHAR(100)?COMMENT?'描述', ??PRIMARY?KEY?(`id`) )?CHARSET=utf8;
如下圖所示:
4.數據庫表t_city_info創建完畢后,修改觸發器代碼,代碼如下:
DELIMITER?$$ USE?`world`$$ DROP?TRIGGER?/*!50032?IF?EXISTS?*/?`city_trigger`$$ CREATE ????/*!50017?DEFINER?=?'root'@'localhost'?*/ ????TRIGGER?`city_trigger`?BEFORE?INSERT?ON?`t_city_info`? ????FOR?EACH?ROW?BEGIN ????INSERT?INTO??t_tri_time?VALUES?(NOW()); ????END; $$ DELIMITER?;
如下圖所示:
5.修改 `city_trigger`觸發器,點擊運行按鈕,并刷新數據庫,可以在觸發器文件夾下查看到 `city_trigger`,
如下圖所示:
6.然后,先t_city_info中插入一條數據,代碼如下:
然后,先t_city_info中插入一條數據,代碼如下: INSERT?INTO?t_city_info?( ??id, ??city_code, ??city_name, ??city_detail )? VALUES ??(1000,?100,?'武漢',?'武漢市')?;
點擊運行后,出現錯誤,錯誤代碼如下:
1?queries?executed,?0?success,?1?errors,?0?warnings 查詢:insert?into?t_city_info?(?id,?city_code,?city_name,?city_detail?)?values?(1000,?100,?'武漢',?'武漢市') 錯誤代碼:?1146 Table?'world.t_tri_time'?doesn't?exist 執行耗時???:?0?sec 傳送時間???:?0?sec 總耗時??????:?0.012?sec
如下圖所示:
7.由于t_tri_time不存在,導致出錯,接著創建t_tri_time數據庫表,
如下圖所示:
? ??
8.再次執行插入語句,結果成功;然后,查詢t_tri_time數據庫表,代碼如下:
SELECT?*?FROM?t_tri_time;
如下圖所示:
說明:
注意數據庫觸發器創建語法
了解數據庫表增刪改查語法
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END