您好,登錄后才能下訂單哦!
本篇文章為大家展示了SQL觸發(fā)器的作用是什么,內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過(guò)這篇文章的詳細(xì)介紹希望你能有所收獲。
觸發(fā)器的作用
1、安全性,可以基于數(shù)據(jù)庫(kù)的值使用戶(hù)具有操作數(shù)據(jù)庫(kù)的某種權(quán)利。
2、審計(jì),可以跟蹤用戶(hù)對(duì)數(shù)據(jù)庫(kù)的操作。
3、實(shí)現(xiàn)復(fù)雜的非標(biāo)準(zhǔn)的數(shù)據(jù)庫(kù)相關(guān)完整性規(guī)則,觸發(fā)器可以對(duì)數(shù)據(jù)庫(kù)中相關(guān)的表進(jìn)行連環(huán)更新。
4、觸發(fā)器能夠拒絕或回退那些破壞相關(guān)完整性的變化,取消試圖進(jìn)行數(shù)據(jù)更新的事務(wù)。當(dāng)插入一個(gè)與其主健不匹配的外部鍵時(shí),這種觸發(fā)器會(huì)起作用。
5、同步實(shí)時(shí)地復(fù)制表中的數(shù)據(jù)
6、自動(dòng)計(jì)算數(shù)據(jù)值,如果數(shù)據(jù)的值達(dá)到了一定的要求,則進(jìn)行特定的處理。
mysql中死鎖
死鎖的關(guān)鍵在于:兩個(gè)(或以上)的Session加鎖的順序不一致。
那么對(duì)應(yīng)的解決死鎖問(wèn)題的關(guān)鍵就是:讓不同的session加鎖有次序
需求:將投資的錢(qián)拆成幾份隨機(jī)分配給借款人。
起初業(yè)務(wù)程序思路是這樣的:
投資人投資后,將金額隨機(jī)分為幾份,然后隨機(jī)從借款人表里面選幾個(gè),然后通過(guò)一條條select for update 去更新借款人表里面的余額等。
例如兩個(gè)用戶(hù)同時(shí)投資,A用戶(hù)金額隨機(jī)分為2份,分給借款人1,2
B用戶(hù)金額隨機(jī)分為2份,分給借款人2,1
由于加鎖的順序不一樣,死鎖當(dāng)然很快就出現(xiàn)了。
對(duì)于這個(gè)問(wèn)題的改進(jìn)很簡(jiǎn)單,直接把所有分配到的借款人直接一次鎖住就行了。
Select * from xxx where id in (xx,xx,xx) for update
在in里面的列表值mysql是會(huì)自動(dòng)從小到大排序,加鎖也是一條條從小到大加的鎖
上述內(nèi)容就是SQL觸發(fā)器的作用是什么,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。