1. 程式人生 > >MySql-建立觸發器

MySql-建立觸發器

在MySQL中,建立觸發器語法如下:

CREATE TRIGGER trigger_name

trigger_time

trigger_event ON tbl_name

FOR EACH ROW

trigger_stmt

其中:
trigger_name:標識觸發器名稱,使用者自行指定;
trigger_time:標識觸發時機,取值為 BEFORE 或 AFTER;
trigger_event:標識觸發事件,取值為 INSERT、UPDATE 或 DELETE;
tbl_name:標識建立觸發器的表名,即在哪張表上建立觸發器;

trigger_stmt:觸發器程式體,可以是一句SQL語句,或者用 BEGIN 和 END 包含的多條語句。

由此可見,可以建立6種觸發器,即:BEFORE INSERT、BEFORE UPDATE、BEFORE DELETE、AFTER INSERT、AFTER UPDATE、AFTER DELETE。

另外有一個限制是不能同時在一個表上建立2個相同型別的觸發器,因此在一個表上最多建立6個觸發器

例如: "ce_column_desc"每新增一條資料,欄位建立時間"created_at "就自動更新時間。

DROP TRIGGER IF EXISTS `ce_column_desc_created_at`;
DELIMITER $
CREATE TRIGGER `ce_column_desc_created_at` 
BEFORE 
INSERT 
ON `ce_column_desc` 

FOR EACH ROW 
begin
set new.created_at = now();
end
$ DELIMITER ;

1.判斷觸發器名稱是否存在,不存在繼續執行以下命令

2.定界符  DELIMITER $ 可隨便定義,例如 ;;   & 等(結束定界符 需一樣 即可  )

3.建立觸發器 

4.標識觸發時機

5.標識觸發事件

6.標識建立觸發器的表名

7.行級觸發器,每行受影響,每插入一條都觸發

8.觸發器程式體-開始

9.觸發器程式體-執行內容

10.觸發器程式體-結束

11.結束 定界符 

相關推薦

mysql建立觸發器實現相同伺服器下不同庫的表資料同步的錯誤收集

1、建立INSERT|UPDATE時,由於沒有加上declare和set語句,導致同步表中的大部分資料為null。 解決:參照建立MYSQL TRIGGER 2、1363 - There is no NEW row in on DELETE trigger 原因:delete觸發器不

MySQL建立觸發器

INSERT 當新的一行資料插入表中時觸發,如執行insert,load data,replace語句插入新資料 UPDATE 當表的一行資料被修改時觸發,如執行update語句時 DELETE 當表的一行資料被刪除時觸發,如執行delete,replace語句時 當執行insert into...on du

mysql建立觸發器總是失敗

今天沒事把觸發器研究了一下,但總是建立失敗,仔細檢查了一下語法似乎沒有任何問題,可總是提示語法錯誤 create trigger test_tre after insert on tbl1 for each row begin delete from tbl2; end;

MySql-建立觸發器

在MySQL中,建立觸發器語法如下: CREATE TRIGGER trigger_name trigger_time trigger_event ON tbl_name FOR EACH ROW trigger_stmt 其中: trigger_name:標識觸發器名稱,

mysql建立觸發器失敗

報錯資訊   You do not have the SUPER privilege and binary logging is enabled (you *might* want to to use the less safe log_bin_trust_function_creators variable

MySQL建立索引,觸發器

沖突 after trigge index 程序 esc triggers 結束 rop 創建索引:ALTER TABLE <表名> ADD INDEX (<字段>);>ALTER TABLE `table_name` ADD PRIMARY

mysql建立TRIGGER觸發器實現相同伺服器下不同庫的表資料同步

實現功能:mysql建立INSERT|UPDATE|DELETE觸發器實現相同伺服器下不同庫的表資料同步。比如table1表的資料有insert|update|delete操作,便同步到sync表中。然後再根據sync表中state(同步狀態)和oper(操作方式)欄位的狀態將sync表

Mysql 使用navcat 建立觸發器

1、建立觸發器 在想要建立觸發器的表 右鍵-> 設計表格 -> 觸發器 2、編寫觸發器內容 begin sql語句; end; 例:當修改密碼把之前得資料放到同步tb_user_copy 備份(mysql 不支援觸發器修改自己 以免出現遞迴操作)

MySQL新增觸發器簡單例項全程操作(包含建立表部分)

~~語法~~ CREATE TRIGGER <觸發器名稱>  --觸發器必須有名字,最多64個字元,可能後面會附有分隔符.它和MySQL中其他物件的命名方式基本相象.{ BEFORE | AFTER }  --觸發器有執行的時間設定:可以設定為事件發生前或後。{ INSERT | UPDATE 

MySQL觸發器建立之注意事項(有關delimiter)

今天晚上在自己的資料庫上做了一個觸發器。由於自己之前是使用SQL Server2005學習SQL語句的,所以在這個簡單的觸發器設計出現了一些自己意想不到的BUG。現在我來簡單的說一下: 這裡使用到 d

Mysql觸發器trigger

更新 如何 語法 int delete gid 一個 數量 恢復 觸發器(trigger):監視某種情況,並觸發某種操作。 show triggers ; //查看所有觸發器 drop trigger triggerName ;

EF 鏈接MySql 建立數據模型

mysq tor sql 開始 blog data 很好 新建 cnblogs   現在寫程序,因為版權的問題,用sql server的少了.我們公司開始大力使用MySql了。(因為免費,而且沒有盜版一說)。   大家都知道EF 是微軟一款很好的orm框架,EF鏈接sql

關於mysql觸發器old和new

let 技術分享 技術 delet png images 9.png ima image 1.當使用insert語句的時候,如果原表中沒有數據的話,那麽對於插入數據後表來說新插入的那條數據就是new,如圖所示: 2.當使用delete語句的時候,刪除的那一條數據相對於刪除

關於mysql建立索引 復合索引 索引類型

uniq 復合索引 最優 強烈 pri 查詢 abc pac 數據存儲 這兩天有個非常強烈的感覺就是自己在一些特別的情況下還是hold不住,腦子easy放空或者說一下子不知道怎麽去分析問題了,比方,問“hash和btree索引的差別”,這非常難嗎。僅僅要

mysql觸發器before和after的區別

mysql 訂單 負數 values 完成 -1 class 大於 nbsp 我們先做個測試: 接上篇日誌建的商品表g和訂單表o和觸發器 假設:假設商品表有商品1,數量是10; 我們往訂單表插入一條記錄: insert into o(gid,much) value

mysql建立自增主鍵的插入,及自動插入當前時間

user 解決方法 int value mysq src blog creat ecc MYSQL裏用這兩個字段,幾乎都是必須的。 以前都是自動建立的,現在手把手建立的時候,就要找資料來搞定了。 參考URL: http://blog.csdn.net/Weicleer

MySQL觸發器

host col sele 觸發 images group 般的 方式 兩種 MySQL從5.0.2版本開始支持觸發器的功能,本次博客就來介紹一下觸發器,mysql版本:mysql-5.7.19。 什麽是觸發器 觸發器是與表有關的數據庫對象,在滿足定義條件時觸發,

學習asp.net core + Ef+mysql建立連接

rtu clu pps 學習 ati conf work 數據 字符 註意事項:1、使用前用nuget導入Microsoft.EntityFrameworkCore.Tools和MySql.Data.EntityFrameworkCore2、DataContext必須聲明一

MySQL建立數據庫及常用函數

mysql 數據庫 1、查看數據庫版本信息mysql> select version();2、查看當前使用的數據庫mysql> select database ();3、查看當前登錄用戶mysql> select user();或者mysql>select current_us

mysql建立索引的幾大原則

工作 order by 場景 ron 可能 ike 遇到 eat 範圍 (轉)僅供自己學習,特此記錄 1.選擇唯一性索引 唯一性索引的值是唯一的,可以更快速的通過該索引來確定某條記錄。例如,學生表中學號是具有唯一性的字段。為該字段建立唯一性索引可以很快的確定某個學生的信息。