iis服务器助手广告
返回顶部
首页 > 资讯 > 后端开发 > GO >如何防止 GORM 使用先前查询中的参数
  • 322
分享到

如何防止 GORM 使用先前查询中的参数

2024-04-04 23:04:57 322人浏览 薄情痞子
摘要

你在学习golang相关的知识吗?本文《如何防止 GORM 使用先前查询中的参数》,主要介绍的内容就涉及到,如果你想提升自己的开发能力,就不要错过这篇文章,大家要知道编程理论基础和实战操作都是不可或

你在学习golang相关的知识吗?本文《如何防止 GORM 使用先前查询中的参数》,主要介绍的内容就涉及到,如果你想提升自己的开发能力,就不要错过这篇文章,大家要知道编程理论基础和实战操作都是不可或缺的哦!

问题内容

我正在使用 Gorm 更新数据库事务范围内的 2 个实体:

tx = tx.model(models.action{}).where("id = ?", 1).updatecolumn("state", "complete")
tx = tx.model(models.claim{}).where("id = ?", 2).update("some_field", nil)

预期的行没有被更新,使用 db.logmode(true) 打开日志记录并查看 gorm 生成的 sql

update "actions" set "state" = 'complete'  where (id = 2) and (id = 1)  
update "claims" set "some_field" = null  where (id = 2) and (id = 1) and (id = 2)

我不明白这些额外的 and 来自哪里,这是我可以让它生成所需查询的唯一方法:

UPDATE "actions" SET "state" = 'COMPLETE'  WHERE ID = 1
UPDATE "claims" SET "some_field" = NULL  WHERE ID = 2

...就是添加一个new(),所以tx.new().model....

添加 new() 是执行此操作的正确方法吗?


解决方案


您正在使用旧指针,这是多个 where 子句的原因。

你应该尝试一下

err := tx.Model(models.Action{}).Where("ID = ?", 1).UpdateColumn("state", "COMPLETE").Error
    if err != nil {
        tx.Rollback()
    }
err = tx.Model(models.Claim{}).Where("ID = ?", 2).Update("some_field", nil).Error
    if err != nil {
        tx.Rollback()
    }

到这里,我们也就讲完了《如何防止 GORM 使用先前查询中的参数》的内容了。个人认为,基础知识的学习和巩固,是为了更好的将其运用到项目中,欢迎关注编程网公众号,带你了解更多关于的知识点!

您可能感兴趣的文档:

--结束END--

本文标题: 如何防止 GORM 使用先前查询中的参数

本文链接: https://www.lsjlt.com/news/596386.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何防止 GORM 使用先前查询中的参数
    你在学习Golang相关的知识吗?本文《如何防止 GORM 使用先前查询中的参数》,主要介绍的内容就涉及到,如果你想提升自己的开发能力,就不要错过这篇文章,大家要知道编程理论基础和实战操作都是不可或...
    99+
    2024-04-04
  • 参数化sql查询如何防止sql注入
    使用参数化查询语句进行查询的示例:string Account =Request.Form["Account"]; string sql = "select id,Name,Account from User where...
    99+
    2024-04-02
  • 递归查询如何利用Spring Boot来防止
    这篇文章将为大家详细讲解有关递归查询如何利用Spring Boot来防止,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。在application.properties中配置#懒加载配置spri...
    99+
    2023-05-31
    springboot 递归查询
  • Java 新手如何使用Spring MVC 中的查询字符串和查询参数
    目录前言  什么是查询字符串和查询参数?Spring MVC中的查询参数 处理可选参数处理多个值处理查询参数的默认值处理查询字符串示例:创建一个RESTful服务 总结前言 Spring M...
    99+
    2024-01-21
    java spring mvc
  • SQL参数化查询能防止SQL注入的原因是什么
    这篇文章主要介绍了SQL参数化查询能防止SQL注入的原因是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇SQL参数化查询能防止SQL注入的原因是什么文章都会有所收获,下面我...
    99+
    2023-03-20
    sql
  • mysql中如何查询前50%的数据
    这篇文章给大家分享的是有关mysql中如何查询前50%的数据的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 实验环境: create ta...
    99+
    2024-04-02
  • 如何使用 gocql 动态添加查询参数?
    对于一个Golang开发者来说,牢固扎实的基础是十分重要的,编程网就来带大家一点点的掌握基础知识点。今天本篇文章带大家了解《如何使用 gocql 动态添加查询参数?》,主要介绍了,希望对大家的知识积...
    99+
    2024-04-05
  • MySql中的常用参数查询
    目录1、超时时间2、查看最大连接数3、查看当前数据库状态总结1、超时时间 以下这些配置项单位都是秒,在mysql命令行中可以使用show global variables like '变量名';可查询配置...
    99+
    2023-02-17
    MySql参数查询 常用参数查询 MySql查询参数
  • PHP的预处理查询如何防止SQL注入
    这篇文章主要讲解了“PHP的预处理查询如何防止SQL注入”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“PHP的预处理查询如何防止SQL注入”吧!PHP的预处理查询是如何防止SQL注入的?目前...
    99+
    2023-07-05
  • mysql中如何查询前90%的数据值
    这篇文章主要为大家展示了“mysql中如何查询前90%的数据值”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“mysql中如何查询前90%的数据值”这篇文章吧。 ...
    99+
    2024-04-02
  • pandas中read_sql使用参数进行数据查询的实现
    目录一、之前的处理方法二、使用 read_sql 中的 params 传入参数1.文档说明2.具体的使用三、总结对比四、字符串的格式化pandas.read_sql 可以在数据库中执...
    99+
    2024-04-02
  • 如何正确处理使用 Mux 的 Go 的可选查询参数?
    本篇文章主要是结合我之前面试的各种经历和实战开发中遇到的问题解决经验整理的,希望这篇《如何正确处理使用 Mux 的 Go 的可选查询参数?》对你有很大帮助!欢迎收藏,分享给更多的需要的朋友学习~问题...
    99+
    2024-04-04
  • MySQL如何在查询中使用子查询
    MySQL中可以在查询中使用子查询来实现更复杂的查询逻辑。子查询是一个嵌套在主查询中的查询语句,通常用于获取主查询中某些条件的结果,...
    99+
    2024-03-06
    MySQL
  • C#中如何使用LINQ查询数据
    C#中如何使用LINQ查询数据,需要具体代码示例LINQ(Language Integrated Query)是C#中的一种强大的查询语言,它可以帮助开发者简化对数据的查询和操作。本文将介绍如何在C#中使用LINQ查询数据,并提供具体的代码...
    99+
    2023-10-22
    C# 查询数据 C#中的关键词: LINQ
  • MySQL数据查询中如何使用集合/聚合函数查询
    小编给大家分享一下MySQL数据查询中如何使用集合/聚合函数查询,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!MySQL聚合函数如下:函数作用avg()返回某列的平均值count()返回某...
    99+
    2024-04-02
  • Swift 中的 Actors 使用以及如何防止数据竞争
    文章目录 前言Actors 的基本原理Actor 是引用类型,但与类相比仍然有所不同 为什么会出现数据竞争如何防止数据竞争使用 async/await 访问数据防止不必要的暂停非隔离(nonisolated)访问为什么在使用 ...
    99+
    2023-08-17
    swift ios 开发语言 原力计划
  • MySQL中如何查询当前时间间隔前1天的数据
    这篇文章主要介绍“MySQL中如何查询当前时间间隔前1天的数据”,在日常操作中,相信很多人在MySQL中如何查询当前时间间隔前1天的数据问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”MySQL中如何查询当前时...
    99+
    2023-06-21
  • 使用Limit参数优化MySQL查询的方法
    要优化MySQL查询,可以使用LIMIT参数来限制返回的结果集的大小,以减少查询的时间和资源消耗。以下是一些使用LIMIT参数优化MySQL查询的方法:1. 限制返回的结果行数:使用LIMIT语句来限制返回的结果行数,可以减少查询的时间...
    99+
    2023-08-11
    Limit
  • JavaScript如何提前检查传入isFinite()的参数
    这篇文章给大家分享的是有关JavaScript如何提前检查传入isFinite()的参数的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。提前检查传入isFinite()的参数isF...
    99+
    2024-04-02
  • 如何使用sql_查询每个tid当前的状态
    这篇文章主要介绍如何使用sql_查询每个tid当前的状态,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、问题场景一个表中有关键字段tid,action,dateline等,tid代...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作