Gorm存在时更新,不存在时创建的问题

 更新时间:2024年08月08日 14:47:32   作者:大杯无糖  
这篇文章主要介绍了Gorm存在时更新,不存在时创建的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

背景

最近开发过程中遇到了一个需求,需要把钉钉组织加架构里面的部门信息导入到数据库中。

部门是会变动的,所以如果部门变动了,就需要更新一下这张表。

但是无论部门怎么变动,一个已经存在的部门的id是不会变的。

所以,当钉钉的组织架构变动的时候,我们需要把老的部门更新,新的部门创建。

我最初想的是,使用if else语句,if dept_id已经存在,那就更新,反之则创建,但是我感觉这样有些不太专业,gorm应该会直接有现成的功能,果然,在我一番搜索之后,终于找到了。

具体实现

使用一个gorm操作,智能化的完成上面操作。 我们就可以用到Upsert 了。

创建 | GORM - The fantastic ORM library for Golang, aims to be developer friendly.

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

如果id已经存在了,那我就更新,反之id不存在,那我就插入。

第一次执行,全部插入

然后我把那个1手动改成2

然后再去使用钉钉接口获取一次,这个使用如果只有这个2变成了1,那就代表成功了

最后附上部门表结构

具体代码

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Go语言MySQLCURD数据库操作示例详解

    Go语言MySQLCURD数据库操作示例详解

    这篇文章主要为大家介绍了Go语言MySQLCURD数据库操作示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-12-12
  • go语言的sql包原理与用法分析

    go语言的sql包原理与用法分析

    这篇文章主要介绍了go语言的sql包原理与用法,较为详细的分析了Go语言里sql包的结构、相关函数与使用方法,需要的朋友可以参考下
    2016-07-07
  • Go语言实现冒泡排序、选择排序、快速排序及插入排序的方法

    Go语言实现冒泡排序、选择排序、快速排序及插入排序的方法

    这篇文章主要介绍了Go语言实现冒泡排序、选择排序、快速排序及插入排序的方法,以实例形式详细分析了几种常见的排序技巧与实现方法,非常具有实用价值,需要的朋友可以参考下
    2015-02-02
  • golang下的GOPATH路径问题及解决

    golang下的GOPATH路径问题及解决

    为了方便,我一般使用task来管理项目的编译等事项,由于才入门go,所以碰到一个问题,以此篇为记,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • Go语言通过chan进行数据传递的方法详解

    Go语言通过chan进行数据传递的方法详解

    这篇文章主要为大家详细介绍了Go语言如何通过chan进行数据传递的功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起了解一下
    2023-06-06
  • Go程序员踩过的defer坑错误处理

    Go程序员踩过的defer坑错误处理

    这篇文章主要为大家介绍了Go程序员踩过的defer坑错误处理,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-06-06
  • Go Java算法之同构字符串示例详解

    Go Java算法之同构字符串示例详解

    这篇文章主要为大家介绍了Go Java算法之同构字符串示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-08-08
  • go语言中的协程详解

    go语言中的协程详解

    本文详细讲解了go语言中的协程,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-07-07
  • Go语言实现websocket推送程序

    Go语言实现websocket推送程序

    这篇文章主要介绍了Go语言实现websocket推送程序,WebSocket是基于TCP的一个双向传输数据的协议,和HTTP协议一样,是在应用层的,他的出现,是为了解决网页进行持久双向传输数据的问题
    2023-01-01
  • go kratos源码及配置解析

    go kratos源码及配置解析

    这篇文章主要为大家介绍了go kratos源码及配置解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-12-12

最新评论