成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

merge into 用法深思

Galence / 2432人閱讀

摘要:線上出現(xiàn)了一個問題同步某一功能的數(shù)據(jù)的時候,同一主鍵的數(shù)據(jù)會發(fā)多次。拋出主鍵沖突的異常。綜合上述的描述,目前要解決的事情有并發(fā)。數(shù)據(jù)存儲順序前提有標識能區(qū)分最新數(shù)據(jù)。基于上述描述準備用語句,用數(shù)據(jù)庫層面的事物來保證數(shù)據(jù)的一致性。

線上出現(xiàn)了一個問題:mq同步某一功能的數(shù)據(jù)的時候,同一主鍵的數(shù)據(jù)會發(fā)多次。業(yè)務邏輯是,某一條數(shù)據(jù)過來后,我會先去數(shù)據(jù)庫查是否存在了此uuid的數(shù)據(jù),如果有的話更新,如果沒有的話插入。由于同一主鍵的數(shù)據(jù)會發(fā)不止一次的mq,并且間隔時間非常小,所以就導致了,兩條數(shù)據(jù)都進入了插入的邏輯里面。拋出主鍵沖突的異常。另外就算是進入到了不同的更新和插入的邏輯里面,有時會出現(xiàn)第二條數(shù)據(jù)先進來,然后第一條數(shù)據(jù)再進來,此時數(shù)據(jù)庫里面更新的就是第一次的數(shù)據(jù),就會產(chǎn)生了數(shù)據(jù)錯誤。
綜合上述的描述,目前要解決的事情有:1、mq并發(fā)。2、數(shù)據(jù)存儲順序(前提:有標識能區(qū)分mq最新數(shù)據(jù))。

基于上述描述準備用merge into 語句,用數(shù)據(jù)庫層面的事物來保證數(shù)據(jù)的一致性。那么現(xiàn)在就來贅述一下merge into的一些用法

merge into 是用來進行合并表的,但因為其特性不同場合用法有以下幾種
1、合并表
2、外部數(shù)據(jù)插入更新
3、用join表更新

1和3我這里就不贅述了,我使用到的是2這一類,最后經(jīng)過改造我所用到的sql如下:
1 MERGE INTO mytable t1
2 USING dual ON ( t1.tuuid =?)
3 WHEN MATCHED THEN
4 UPDATE SET modify_date =?,
5 flg =?
6 WHERE flg != "N"
7 WHEN NOT MATCHED THEN
8 INSERT (
9 uuid,
10 flg,
11 modify_date ) VALUES (?,?,?);
由于是外部更新,屬于類型2只有一張表,所以在第2行引入偽表做關(guān)聯(lián)條件。同時sql第6行判斷的是mq的順序,如果根據(jù)uuid發(fā)現(xiàn)表里面存在數(shù)據(jù)并且flg值為‘N’就表示mq過來后插入的是第二條數(shù)據(jù),那么就不需要再做更新。(關(guān)鍵的地方是第2行【偽表】和第6行【merge語句可以在update語句里面寫where條件】的改動)

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/72657.html

相關(guān)文章

  • 10個值得深思的PHP面試問題

    摘要:運算符的優(yōu)先級,是明顯高于,因此先執(zhí)行再執(zhí)行。這里會非常有趣的將轉(zhuǎn)換成一個數(shù)字而且默認去掉了前面的也就是很顯然上面的問題已經(jīng)說過了數(shù)字和字符串類型不一致。 showImg(https://segmentfault.com/img/bVvhhO); 本文翻譯自:https://www.toptal.com/php/interview-questions ,文章所羅列的問題雖然看似簡單,但...

    BetaRabbit 評論0 收藏0
  • Yii2 GridView的使用方法

    摘要:是實現(xiàn)網(wǎng)格視圖的小部件,一般用于報表視圖的展示。就是連續(xù)的列,主要用于網(wǎng)格的行號,屬于自增式的列。指定處理的類,必須。 Yii2 GridView是實現(xiàn)yii網(wǎng)格視圖的小部件,一般用于報表視圖的展示。今天,結(jié)合DataProvider(ArrayDataProvider以及SqlDataProvider)說一下GridView中的幾個Columns(SerialColumn,DataC...

    Paul_King 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<