您好,登錄后才能下訂單哦!
本篇文章為大家展示了SQL觸發器的作用是什么,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
觸發器的作用
1、安全性,可以基于數據庫的值使用戶具有操作數據庫的某種權利。
2、審計,可以跟蹤用戶對數據庫的操作。
3、實現復雜的非標準的數據庫相關完整性規則,觸發器可以對數據庫中相關的表進行連環更新。
4、觸發器能夠拒絕或回退那些破壞相關完整性的變化,取消試圖進行數據更新的事務。當插入一個與其主健不匹配的外部鍵時,這種觸發器會起作用。
5、同步實時地復制表中的數據
6、自動計算數據值,如果數據的值達到了一定的要求,則進行特定的處理。
mysql中死鎖
死鎖的關鍵在于:兩個(或以上)的Session加鎖的順序不一致。
那么對應的解決死鎖問題的關鍵就是:讓不同的session加鎖有次序
需求:將投資的錢拆成幾份隨機分配給借款人。
起初業務程序思路是這樣的:
投資人投資后,將金額隨機分為幾份,然后隨機從借款人表里面選幾個,然后通過一條條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觸發器的作用是什么,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。