最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Gorm存在時(shí)更新,不存在時(shí)創(chuàng)建的問題

 更新時(shí)間:2024年08月08日 14:47:32   作者:大杯無糖  
這篇文章主要介紹了Gorm存在時(shí)更新,不存在時(shí)創(chuàng)建的問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

背景

最近開發(fā)過程中遇到了一個(gè)需求,需要把釘釘組織加架構(gòu)里面的部門信息導(dǎo)入到數(shù)據(jù)庫中。

部門是會(huì)變動(dòng)的,所以如果部門變動(dòng)了,就需要更新一下這張表。

但是無論部門怎么變動(dòng),一個(gè)已經(jīng)存在的部門的id是不會(huì)變的。

所以,當(dāng)釘釘?shù)慕M織架構(gòu)變動(dòng)的時(shí)候,我們需要把老的部門更新,新的部門創(chuàng)建。

我最初想的是,使用if else語句,if dept_id已經(jīng)存在,那就更新,反之則創(chuàng)建,但是我感覺這樣有些不太專業(yè),gorm應(yīng)該會(huì)直接有現(xiàn)成的功能,果然,在我一番搜索之后,終于找到了。

具體實(shí)現(xiàn)

使用一個(gè)gorm操作,智能化的完成上面操作。 我們就可以用到Upsert 了。

創(chuàng)建 | GORM - The fantastic ORM library for Golang, aims to be developer friendly.

上面的一句英文 Update columns to new value on `id` conflict 意思是:

如果id已經(jīng)存在了,那我就更新,反之id不存在,那我就插入。

第一次執(zhí)行,全部插入

然后我把那個(gè)1手動(dòng)改成2

然后再去使用釘釘接口獲取一次,這個(gè)使用如果只有這個(gè)2變成了1,那就代表成功了

最后附上部門表結(jié)構(gòu)

具體代碼

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 深入理解go sync.Waitgroup的使用

    深入理解go sync.Waitgroup的使用

    WaitGroup在go語言中,用于線程同步,本文主要介紹了深入理解go sync.Waitgroup的使用,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-01-01
  • 詳解go-zero如何使用validator進(jìn)行參數(shù)校驗(yàn)

    詳解go-zero如何使用validator進(jìn)行參數(shù)校驗(yàn)

    這篇文章主要介紹了如何使用validator庫做參數(shù)校驗(yàn)的一些十分實(shí)用的使用技巧,包括翻譯校驗(yàn)錯(cuò)誤提示信息、自定義提示信息的字段名稱、自定義校驗(yàn)方法等,感興趣的可以了解下
    2024-01-01
  • Golang橋接模式講解和代碼示例

    Golang橋接模式講解和代碼示例

    橋接是一種結(jié)構(gòu)型設(shè)計(jì)模式,可將業(yè)務(wù)邏輯或一個(gè)大類拆分為不同的層次結(jié)構(gòu),從而能獨(dú)立地進(jìn)行開發(fā),本文將通過代碼示例詳細(xì)給大家介紹一下Golang橋接模式,需要的朋友可以參考下
    2023-06-06
  • GoLang中的timer定時(shí)器實(shí)現(xiàn)原理分析

    GoLang中的timer定時(shí)器實(shí)現(xiàn)原理分析

    Timer中對外暴露的只有一個(gè)channel,這個(gè) channel也是定時(shí)器的核心。當(dāng)計(jì)時(shí)結(jié)束時(shí),Timer會(huì)發(fā)送值到channel中,外部環(huán)境在這個(gè) channel 收到值的時(shí)候,就代表計(jì)時(shí)器超時(shí)了,可與select搭配執(zhí)行一些超時(shí)邏輯
    2023-02-02
  • golang time包的用法詳解

    golang time包的用法詳解

    這篇文章主要介紹了golang time包的用法詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • 如何用go操作iptables和ipset設(shè)置黑白名單

    如何用go操作iptables和ipset設(shè)置黑白名單

    這篇文章主要介紹了如何用go操作iptables和ipset設(shè)置黑白名單問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-06-06
  • golang?基于?mysql?簡單實(shí)現(xiàn)分布式讀寫鎖

    golang?基于?mysql?簡單實(shí)現(xiàn)分布式讀寫鎖

    這篇文章主要介紹了golang?基于mysql簡單實(shí)現(xiàn)分布式讀寫鎖,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-09-09
  • Mac上Go環(huán)境和VS Code的正確安裝與配置方法

    Mac上Go環(huán)境和VS Code的正確安裝與配置方法

    Go語言是一個(gè)新興的語言。下面介紹一下如何在Mac系統(tǒng)下安裝和使用這個(gè)語言,Go語言提供了mac下安裝包,可直接下載安裝包點(diǎn)擊安裝
    2018-03-03
  • Go?語言前綴樹實(shí)現(xiàn)敏感詞檢測

    Go?語言前綴樹實(shí)現(xiàn)敏感詞檢測

    這篇文章主要為大家介紹了Go語言前綴樹實(shí)現(xiàn)敏感詞檢測實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • Go routine調(diào)度詳解

    Go routine調(diào)度詳解

    這篇文章主要介紹了Go routine調(diào)度詳解,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-01-01

最新評論

应城市| 灵丘县| 蓝田县| 凌云县| 清涧县| 仁布县| 辽宁省| 义乌市| 汉寿县| 陈巴尔虎旗| 青田县| 闸北区| 拉孜县| 乐都县| 郁南县| 鱼台县| 融水| 海丰县| 买车| 三门峡市| 吉林市| 蒲江县| 子长县| 房山区| 曲沃县| 雷州市| 肇东市| 苏尼特右旗| 孝义市| 大关县| 靖宇县| 称多县| 青川县| 绥芬河市| 和顺县| 长顺县| 浪卡子县| 兴安盟| 呈贡县| 读书| 芷江|