




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、關(guān)于mysql觸發(fā)器、存儲過程的用法有什么很多程序員在出去面試的時(shí)候都會存在這樣一個問題,就是筆試題中對于sql語句的考察,很多關(guān)鍵字的寫法忘記了甚至是完全沒有用過,但是如果你能百度一下或者看一下之前寫的代碼又會瞬間想起來,這其實(shí)是一個比較尷尬的問題,僅僅的因?yàn)橐粋€關(guān)鍵字就能否定你的sql能力或者代碼能力嗎?當(dāng)然這是很片面的。但是sql的關(guān)鍵字又實(shí)在是太多,一個一個整理未免太多復(fù)雜,所以我這里不過多的介紹了,碰到了,自己查下資料即可。今天主要介紹的是觸發(fā)器、存儲過程的用法。觸發(fā)器的語法:Delimiter $Create trigger 觸發(fā)器名稱After/before insert/upd
2、ate/delete on 表名For each row #每隔一行執(zhí)行一次動作,而不是對整個表(mysql中一般是固定寫法Beginsql語句End$Delimiter ;解釋一下,上面的語法意思:在執(zhí)行表的增刪改之后或之前,完成事件的觸發(fā)下面,我們看下具體的例子,場景如下: 當(dāng)我們向訂單中插入數(shù)據(jù)時(shí),商品表中的對應(yīng)商品要減少對應(yīng)的數(shù)量,這里我們使用觸發(fā)器來實(shí)現(xiàn);觸發(fā)器代碼: new.order_count 和new.g_id都是訂單表中新傳入的數(shù)據(jù),根據(jù)新插的值進(jìn)行動態(tài)更新執(zhí)行如下代碼: 意為在我向訂單表中插入數(shù)據(jù)之后,觸發(fā)更新商品表的sql語句插入前: 插入后: 到這里,觸發(fā)器的實(shí)現(xiàn)就已
3、經(jīng)完全寫完了。但是,這里還可能存在一種情況,用戶如果不想買了,我們應(yīng)該如何處理,你需要把訂單表的記錄刪除,然后把對應(yīng)的商品數(shù)量加回去。觸發(fā)器: 需要注意的是我們這里不能再使用new.order_count 和new.g_id,而應(yīng)該換成對應(yīng)的old,因?yàn)槲覀円獎h除的信息不是新插入的,而是用的之前的,這一點(diǎn)應(yīng)該是不難理解的。執(zhí)行如下代碼: 刪除后: 可以看到,此時(shí)的面包數(shù)量已經(jīng)加回來了;上述代碼寫得都是先執(zhí)行增刪改,再進(jìn)行觸發(fā),下面我們演示先觸發(fā),再進(jìn)行對應(yīng)的增刪改結(jié)合具體實(shí)例:用戶在購買的時(shí)候,我們實(shí)際開發(fā)中需要先對商品數(shù)量進(jìn)行判斷,如果,商品庫存不足或者小于訂單購買量,此時(shí)應(yīng)提示庫存不足。同樣,需要用到before關(guān)鍵字,意為先觸發(fā)事件,再進(jìn)行增刪改觸發(fā)器代碼如圖: 執(zhí)行下面代碼: 插入前: 插入后: 可以看到,我們明明購買了10個,但是庫存只有8個,所以經(jīng)過判斷我們最多只能購買8個,當(dāng)然,這里呢,也會存在一個問題,這個sql里面的8寫的并不規(guī)范,正常來講,應(yīng)該先查詢數(shù)量,再判斷,這里只是解釋after和before 的區(qū)別。存儲過程語法:Create procedure 存儲過程名稱(
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 肝與腎中醫(yī)課件
- 肛腸健康講座課件
- 關(guān)于對稱的數(shù)學(xué)試卷
- 福建省教招小學(xué)數(shù)學(xué)試卷
- 肌內(nèi)效貼布技術(shù)課件
- 2025年05月浙江麗水市縉云縣衛(wèi)生健康系統(tǒng)招聘工作人員自愿放棄復(fù)審人員及人員筆試歷年專業(yè)考點(diǎn)(難、易錯點(diǎn))附帶答案詳解
- 2025至2030船舶卸貨系統(tǒng)行業(yè)市場深度研究與戰(zhàn)略咨詢分析報(bào)告
- 2025至2030寵物衣服行業(yè)市場深度研究與戰(zhàn)略咨詢分析報(bào)告
- 廈門市政投資有限公司招聘考試真題2024
- 2024年商洛山陽縣信毅學(xué)校招聘筆試真題
- 上海市行政執(zhí)法人員考試近年真題匯總(含解析)
- 中醫(yī)醫(yī)院中醫(yī)師帶徒協(xié)議模板范文
- 專業(yè)技術(shù)人員職務(wù)聘任書
- GB 29415-2013耐火電纜槽盒
- 創(chuàng)業(yè)板答題標(biāo)準(zhǔn)20題答案
- 《密碼法》培訓(xùn)只是講座PPT課件(帶內(nèi)容)
- 如何解讀血常規(guī)報(bào)告
- 區(qū)域消防安全風(fēng)險(xiǎn)評估規(guī)程DB50-T 1114-2021
- 站用電400V系統(tǒng)定期切換試驗(yàn)方案
- 初中數(shù)學(xué)北師大八年級下冊(2023年修訂) 因式分解岷陽王冬雪提公因式法教學(xué)設(shè)計(jì)
- 免疫調(diào)節(jié)治療在腦卒中的運(yùn)用課件
評論
0/150
提交評論