当前位置: 代码网 > it编程>前端脚本>Golang > Gorm存在时更新,不存在时创建的问题

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

2024年09月06日 Golang 我要评论
背景最近开发过程中遇到了一个需求,需要把钉钉组织加架构里面的部门信息导入到数据库中。部门是会变动的,所以如果部门变动了,就需要更新一下这张表。但是无论部门怎么变动,一个已经存在的部门的id是不会变的。

背景

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

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

但是无论部门怎么变动,一个已经存在的部门的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,那就代表成功了

最后附上部门表结构

具体代码

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com