mysql觸發器簡單demo,深入理解
之前的文章已經有詳細講解過觸發器的語法,這篇文章主要是以實踐為主,本人瀏覽了好多關於觸發器的部落格,好文章確實不少,在這裡挑這篇轉載,是因為覺得對於任何入門的知識,起步把握要領即可,後續再慢慢深入,不能剛開始一篇長篇大論,各種深入問題都涉及,那樣會給自己在學習之前造成視野恐懼和心理恐懼. 希望這篇文章能讓你快速清晰的理解觸發器這個概念.
~~語法~~
CREATE TRIGGER <觸發器名稱> --觸發器必須有名字,最多64個字元,可能後面會附有分隔符.它和MySQL中其他物件的命名方式基本相象.
{ BEFORE | AFTER } --觸發器有執行的時間設定:可以設定為事件發生前或後。
{ INSERT
ON <表名稱> --觸發器是屬於某一個表的:當在這個表上執行插入、 更新或刪除操作的時候就導致觸發器的啟用. 我們不能給同一張表的同一個事件安排兩個觸發器。
FOR EACH ROW --觸發器的執行間隔:FOR EACH ROW子句通知觸發器 每隔一行執行一次動作,而不是對整個表執行一次。
<觸發器SQL語句> --觸發器包含所要觸發的SQL語句:這裡的語句可以是任何合法的語句, 包括複合語句,但是這裡的語句受的限制和函式的一樣。
--你必須擁有相當大的許可權才能建立觸發器(CREATE TRIGGER),如果你已經是Root使用者,那麼就足夠了。這跟SQL的標準有所不同。
~~例項~~
example1:
建立表tab1
DROP TABLE IF EXISTS tab1;
CREATE TABLE tab1(
tab1_id varchar(11)
);
建立表tab2
DROP TABLE IF EXISTS tab2;
CREATE TABLE tab2(
tab2_id varchar(11)
);
建立觸發器:t_afterinsert_on_tab1
作用:增加tab1表記錄後自動將記錄增加到tab2表中
DELIMITER $
DROP TRIGGER IF EXISTS t_afterinsert_on_tab1 $
CREATE
TRIGGER t_afterinsert_on_tab1 AFTER INSERT ON tab1
FOR EACH ROW BEGIN
INSERT INTO tab2(tab2_id) VALUES(new.tab1_id);
END
$
測試一下INSERT INTO tab1(tab1_id) values('0001');
看看結果SELECT * FROM tab1;
SELECT * FROM tab2;
example2:
建立觸發器:t_afterdelete_on_tab1
作用:刪除tab1表記錄後自動將tab2表中對應的記錄刪去
DELIMITER $
DROP TRIGGER IF EXISTS t_afterdelete_on_tab1 $
CREATE TRIGGER t_afterdelete_on_tab1
AFTER DELETE ON tab1
FOR EACH ROW
BEGIN
DELETE FROM tab2 WHERE tab2_id=old.tab1_id;
END
$
測試一下DELETE FROM tab1 WHERE tab1_id='0001';
看看結果SELECT * FROM tab1;
SELECT * FROM tab2;
相關推薦
mysql觸發器簡單demo,深入理解
之前的文章已經有詳細講解過觸發器的語法,這篇文章主要是以實踐為主,本人瀏覽了好多關於觸發器的部落格,好文章確實不少,在這裡挑這篇轉載,是因為覺得對於任何入門的知識,起步把握要領即可,後續再慢慢深入,不能剛開始一篇長篇大論,各種深入問題都涉及,那樣會給自己在學習之前造成視野恐
JavaScript 函數聲明,函數表達式,匿名函數的區別,深入理解立即執行函數(function(){…})()
之前 事件處理程序 logs cnblogs 函數調用 引擎 花括號 ava img function fnName(){xxxx}; // 函數聲明:使用function關鍵字聲明一個函數,在指定一個函數名。 //例如:(正常,因為 提升 了函數聲明,函
2.2 logistic回歸損失函數(非常重要,深入理解)
問題 好的 為知 得出 cnblogs 回歸算法 很多 將他 深入 上一節當中,為了能夠訓練logistic回歸模型的參數w和b,需要定義一個成本函數 使用logistic回歸訓練的成本函數 為了讓模型通過學習來調整參數,要給出一個含有m和訓練樣本的訓練集很自然的,希望通過
CSS外邊距屬性,深入理解margin
需要 AD result 左右 定位 IT 條件 表格 group margin <iframe height=‘265‘ scrolling=‘no‘ title=‘margin‘ src=‘//codepen.io/wmui/embed/zWEzEg/?heigh
MYSQL---觸發器簡單了解
each apple _id 庫存 delet 簡單 執行 num AC 觸發器 trigger 1、觸發器是指事先為某張表綁定一段代碼,當表中某些內容發生改變(增insert、刪delete、改update)時,系統自動觸發綁定的那段代碼並執行。比如 一旦訂單表裏插入新訂
對象的深度拓展$.extend(true,{},a,b),深入理解,小心陷阱
com ges 深入理解 沒有 裏的 事物 cnblogs wid 希望 轉載:https://www.cnblogs.com/DJeanWeb/p/4388689.html $.extend一般情景下,使用深度拓展兩個對象時,我們想要的效果是,b對象覆蓋掉a對象中存在的
JavaScript 的基本用法(六):簡單練習,有助於理解js
1 按下Ctrl鍵,使在下表中“操作”列中選擇同時使被勾選的那些行,獲得同樣的選擇? <!DOCTYPE html> <html lang="zh-CN"> <head> <meta chars
循序漸進,深入理解KMP演算法
KMP演算法是三位大牛:D.E.Knuth、J.H.Morris和V.R.Pratt同時發現的。其中第一位就是《計算機程式設計藝術》的作者! KMP演算法要解決的問題就是在字串(也叫主串)中的模式(pattern)定位問題。說簡單點就是我們平時常說的關鍵字搜尋。模式串就是關鍵字(接下來
10個簡單步驟,完全理解SQL
轉載自:http://blog.jobbole.com/55086/ 1 sql是一種宣告式語言 sql語言是為計算機聲明瞭一個你想從原始資料中獲得什麼樣的結果的一個範例,而不是告訴計算機如何能夠得到結果。 2sql的語法並不是按照語法順序執行 select
簡述JAVA GC回收機制,深入理解GC原理
什麼是“GC” 垃圾回收機制。 為什麼要用“GC” 眾所周知,JAVA 這語言,與C語言不同,Java記憶體(堆記憶體)的分配與回收由JVM垃圾收集器自動完成,比如 C語言自己定義的變數,不用時需要 自己回收這個變數 。JAVA 這就是自動完成了,自動檢測,無用的
C++的函式中,如何使用指標交換兩個數的值,深入理解指標
使用外部函式交換兩個變數的值,一個再簡單不過的事情,但是在C/C++中,正確實現該功能反應了你對指標和引用等重要知識的掌握程度。本文列舉了幾種常見的寫法,其中前三種是錯誤的,後兩種是正確的。第四種使用的是指標,第五種使用的是引用。請看下面五個簡單的函式: #include&
Django第八篇,深入理解檢視和url
目錄 URL 配置小技巧 簡化匯入函式的方式 在除錯模式下提供特殊的 URL 具名分組 示例請求: 捕獲的引數始終是字串 為檢視的引數指定預設值 錯誤處理 引入其他 URL 配置 捕獲的引
Flask-login 簡單 Demo, 最簡單的實現登入方法
Flask-login 簡單 Demo, 最簡單的實現登入方法 * 當使用MethodView的時候,login_required 使用方法 class XxxxView(MethodView): decorators = [login_required] #
MySQL資料行溢位的深入理解
一、從常見的報錯說起 故事的開頭我們先來看一個常見的sql報錯資訊: 相信對於這類報錯大家一定遇到過很多次了,特別對於OMG這種已內容生產為主要工作核心的BG,在內容線的儲存中,資料大一定是個繞不開的話題。這裡的資料“大”,遠不止儲存空間佔用多,其中也包括了單個(表)欄位儲存多、大,資料留存時間長,資
JavaWeb簡單demo,學生管理系統
最近在學JavaWeb,這個小demo是做練習用的,沒有用到框架,只是實現前後臺通訊的小案例,可以通過這個小案例理解JavaWeb是如何工作的,怎樣通過前臺頁面調取後臺資料庫裡的資料,怎樣設定過濾器解決亂碼問題以及使用者登入問題等等。 JavaWeb的綜合性比
C/C++程式設計學習筆記二:C語言的函式中,如何使用指標交換兩個數的值,深入理解指標
使用外部函式交換兩個變數的值,一個再簡單不過的事情,但是在C/C++中,正確實現該功能反應了你對指標和引用等重要知識的掌握程度。本文列舉了幾種常見的寫法,其中前三種是錯誤的,後兩種是正確的。第四種使
登入MYSQL的簡單步驟,新手上路
1.首先先進入到本地的phpstudy目錄 進入到mysql/bin中 登入MYSQL: @>mysql -u root -p @>密碼 成功登入 列出所有資料庫 mysql>show database; 切換資料庫 mysql>use
ELF(七)可重定位目標,部分摘自深入理解作業系統,深入理解linx核心
可重定位目標 重定位是將EFL檔案中的未定義符號關聯到有效值的處理過程。在main.o中,這意味著對printf和puts的未定義的引用必須替換為該程序的虛擬地址空間中適當的機器程式碼所在的地址。在目標中用到的相關符號之處,都必須替換。
關於mysql 觸發器(insert,update)
1. 當表A新增一條記錄,表B則跟著新增這條記錄 #刪除當前觸發器 drop TRIGGER IF EXISTS t_edw_event_add_cdr_3; #建立觸發器:當ccbill_cdr表新增一條記錄,則在edw_event_add_cdr表新增這條記錄 CREA
站在大神肩膀上,深入理解 Android事件分發機制
Android事件分發,參考了網上的很多資料。基本基於android2.2的原始碼來分析,因為即使是新的版本,裡面的原理思想也沒有改變。 有了大神的肩膀,我在理解了其原理的基礎上,進行一個小總結。 先理解一個概念: 事件:在android中,點選螢幕是時,產生的長按,點選