久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

SQL觸發器的作用是什么

146次閱讀
沒有評論

共計 873 個字符,預計需要花費 3 分鐘才能閱讀完成。

自動寫代碼機器人,免費開通

本篇文章為大家展示了 SQL 觸發器的作用是什么,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

觸發器的作用

1、安全性,可以基于數據庫的值使用戶具有操作數據庫的某種權利。

2、審計,可以跟蹤用戶對數據庫的操作。

3、實現復雜的非標準的數據庫相關完整性規則,觸發器可以對數據庫中相關的表進行連環更新。

4、觸發器能夠拒絕或回退那些破壞相關完整性的變化,取消試圖進行數據更新的事務。當插入一個與其主健不匹配的外部鍵時,這種觸發器會起作用。

5、同步實時地復制表中的數據

6、自動計算數據值,如果數據的值達到了一定的要求,則進行特定的處理。

mysql 中死鎖:是指兩個或兩個以上的進程在執行過程中, 因爭奪資源而造成的一種互相等待的現象, 若無外力作用,它們都將無法推進下去. 此時稱系統處于死鎖狀態或系統產生了死鎖,這些永遠在互相等待的進程稱為死鎖進程。表級鎖不會產生死鎖. 所以解決死鎖主要還是針對于最常用的 InnoDB。

死鎖的關鍵在于:兩個 (或以上) 的 Session 加鎖的順序不一致。

那么對應的解決死鎖問題的關鍵就是:讓不同的 session 加鎖有次序

mysql 中死鎖案例

需求:將投資的錢拆成幾份隨機分配給借款人。

起初業務程序思路是這樣的:

投資人投資后,將金額隨機分為幾份,然后隨機從借款人表里面選幾個,然后通過一條條 select for update 去更新借款人表里面的余額等。

例如兩個用戶同時投資,A 用戶金額隨機分為 2 份,分給借款人 1,2

B 用戶金額隨機分為 2 份,分給借款人 2,1

由于加鎖的順序不一樣,死鎖當然很快就出現了。

對于這個問題的改進很簡單,直接把所有分配到的借款人直接一次鎖住就行了。

Select * from xxx where id in (xx,xx,xx) for update

在 in 里面的列表值 mysql 是會自動從小到大排序,加鎖也是一條條從小到大加的鎖

上述內容就是 SQL 觸發器的作用是什么,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注丸趣 TV 行業資訊頻道。

向 AI 問一下細節

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-12-04發表,共計873字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 弋阳县| 濮阳市| 本溪| 富蕴县| 梨树县| 景泰县| 西峡县| 托里县| 鄂伦春自治旗| 洞头县| 福州市| 高陵县| 东乡| 简阳市| 铁岭市| 遵义县| 马边| 福州市| 册亨县| 张家口市| 中山市| 龙川县| 西昌市| 天等县| 略阳县| 忻州市| 平乐县| 长沙县| 阜阳市| 扎兰屯市| 楚雄市| 香河县| 旺苍县| 梓潼县| 伊通| 新源县| 永丰县| 陆良县| 泸州市| 民勤县| 黔西县|