如何利用MySQL數據庫創建觸發器

mysql中的觸發器是由insert、update和delete等事件來觸發某種特定操作,滿足觸發器的觸發條件,數據庫就會執行觸發器中定義的程序語句,并且觸發器的執行語句可能只有一個,也可能有多個。那怎么實現創建觸發器,具體操作如下:

如何利用MySQL數據庫創建觸發器

1.首先,在數據庫world下找到“觸發器”,鼠標右鍵“創建觸/發器”,彈出輸入新觸發器名稱,填寫名稱“city_trigger”,

如下圖所示:

如何利用MySQL數據庫創建觸發器

2.輸入完畢,單擊“創建”按鈕,生成city_trigger,

如下圖所示:

如何利用MySQL數據庫創建觸發器

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;

如下圖所示:

如何利用MySQL數據庫創建觸發器

如何利用MySQL數據庫創建觸發器

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?;

如下圖所示:

如何利用MySQL數據庫創建觸發器

5.修改 `city_trigger`觸發器,點擊運行按鈕,并刷新數據庫,可以在觸發器文件夾下查看到 `city_trigger`,

如下圖所示:

如何利用MySQL數據庫創建觸發器

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

如下圖所示:

如何利用MySQL數據庫創建觸發器

7.由于t_tri_time不存在,導致出錯,接著創建t_tri_time數據庫表,

如下圖所示:

如何利用MySQL數據庫創建觸發器

? ??

8.再次執行插入語句,結果成功;然后,查詢t_tri_time數據庫表,代碼如下:

SELECT?*?FROM?t_tri_time;

如下圖所示:

如何利用MySQL數據庫創建觸發器

如何利用MySQL數據庫創建觸發器

說明:

注意數據庫觸發器創建語法

了解數據庫表增刪改查語法

? 版權聲明
THE END
喜歡就支持一下吧
點贊6 分享