日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > 数据库 >内容正文

数据库

mysql高级 tigger触发器 --[1]

發(fā)布時(shí)間:2023/12/14 数据库 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql高级 tigger触发器 --[1] 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

觸發(fā)器:

很方便,在商城中最常見。,你可以用兩條語(yǔ)句,也可以用一個(gè)觸發(fā)器

場(chǎng)景:

表中, 一個(gè)訂單產(chǎn)生,然后庫(kù)存減去數(shù)量。

表中,有關(guān)聯(lián)的兩個(gè)表,可在訂單生成的時(shí)候判斷客戶的錢是否夠

當(dāng)有訂單的時(shí)候,及時(shí)的向管理員發(fā)送一個(gè)信息。也可以用

英語(yǔ):tigger ?扳機(jī);槍擊;引線;觸發(fā);引起?

一個(gè)表改變可以改變n個(gè)表。?

監(jiān)視->觸發(fā)


/*觸發(fā)器tigger 需求: 商品表: 訂單表:當(dāng)下一個(gè)訂單的時(shí)候?qū)?yīng)的商品表相應(yīng)減少分析: 監(jiān)視誰(shuí):ord 監(jiān)視動(dòng)作:insert 出發(fā)時(shí)間:fater # (暫選擇之后) 出發(fā)事件:update*/ create trigger t1 after # 什么時(shí)候觸發(fā) insert # 監(jiān)視什么動(dòng)作 on ord # 監(jiān)視誰(shuí)? for each row # 暫時(shí)不理解 begin update goods xxx end;


創(chuàng)建試驗(yàn)表:

create table goods(gid int auto_increment primary key,name varchar(20),number smallint ); create table ordz(oid int auto_increment primary key,gid int,much int );insert into goods values(1,'cat','20'); insert into goods values(2,'dog','20'); insert into goods values(3,'pig','20');+-----+------+--------+ | gid | name | number | +-----+------+--------+ | 1 | cat | 20 | | 2 | dog | 20 | | 3 | pig | 20 | +-----+------+--------+

創(chuàng)建觸發(fā)器:

-- 如果買了,向ordz表添加數(shù)據(jù), 則需要另外再寫一條向goods表中減少 -- 但是創(chuàng)建觸發(fā)器就方便了create trigger t1 after insert on goods for each row begin update goods set num = num-2 where gid = 1; end; -- 報(bào)錯(cuò)!!! 兩個(gè)分號(hào) 最外層用 $ 符號(hào)做分隔符delimiter $ create trigger t1 after insert on ordz for each row begin update goods set number = number-2 where gid = 1; end $show triggers \G *************************** 1. row ***************************Trigger: t1Event: INSERTTable: ordz Statement: beginupdate goods set number = number-2 where gid = 1; endTiming: AFTERCreated: NULLsql_mode:Definer: root@localhost 1 row in set (0.01 sec)

插入ordz表 訂單:

insert into ordz values(1,1,2);+-----+------+--------+ | gid | name | number | +-----+------+--------+ | 1 | cat | 18 | | 2 | dog | 20 | | 3 | pig | 20 | +-----+------+--------+
問題: ?
1. 都減少了貓兩只
2. 如果訂單多了怎么辦?




總結(jié)

以上是生活随笔為你收集整理的mysql高级 tigger触发器 --[1]的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。