开发者

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

目录
  • 背景
  • 具体实现
    • 最后附上部门表结构
    • 具体代码
  • 总结

    背景

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

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

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

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

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

    具体实现

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

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

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

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

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

    第一次执行,全部插入

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

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

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

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

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

    最后附上部门表结构

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

    具体代码

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

    总结

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程客栈(www.devze.com)。

    0

    上一篇:

    下一篇:

    精彩评论

    暂无评论...
    验证码 换一张
    取 消

    最新开发

    开发排行榜