首页 > 数据库 >Mysql - Gorm Updates的坑

Mysql - Gorm Updates的坑

时间:2023-04-23 21:12:08浏览次数:43  
标签:name db 更新 Gorm Updates Mysql hello user

// 如果单个属性被更改了,更新它
db.Model(&user).Update("name", "hello")
//// UPDATE users SET name='hello', updated_at='2013-11-17 21:34:10' WHERE id=111;

// 使用组合条件更新单个属性
db.Model(&user).Where("active = ?", true).Update("name", "hello")
//// UPDATE users SET name='hello', updated_at='2013-11-17 21:34:10' WHERE id=111 AND active=true;

// 使用 `map` 更新多个属性,只会更新那些被更改了的字段
db.Model(&user).Updates(map[string]interface{}{"name": "hello", "age": 18, "actived": false})
//// UPDATE users SET name='hello', age=18, actived=false, updated_at='2013-11-17 21:34:10' WHERE id=111;

// 使用 `struct` 更新多个属性,只会更新那些被修改了的和非空的字段
db.Model(&user).Updates(User{Name: "hello", Age: 18})
//// UPDATE users SET name='hello', age=18, updated_at = '2013-11-17 21:34:10' WHERE id = 111;

// 警告: 当使用结构体更新的时候, GORM 只会更新那些非空的字段
// 例如下面的更新,没有东西会被更新,因为像 "", 0, false 是这些字段类型的空值
db.Model(&user).Updates(User{Name: "", Age: 0, Actived: false})

标签:name,db,更新,Gorm,Updates,Mysql,hello,user
From: https://www.cnblogs.com/beatleC/p/17347766.html

相关文章

  • DataX-阿里开源离线同步工具在Windows上实现Sqlserver到Mysql全量同步和增量同步
    场景Kettle-开源的ETL工具集-实现SqlServer到Mysql表的数据同步并部署在Windows服务器上:https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/119891674上面讲过Kettle的使用,下面记录下阿里开源异构数据源同步工具DataXDataXDataX是一个异构数据源离线同步工具,致力......
  • mysql主从:mysql 主从、django使用多数据库做读写分离
    目录一、mysql主从介绍搭建步骤二、django使用多数据库做读写分离一、mysql主从介绍MySQL主从复制是一种常见的数据库复制技术,可以将一个MySQL数据库的数据复制到多个从库中,从而提高读取性能和数据可用性。在主从复制中,主库是数据的源头,从库是数据的副本,主库将数据变更记录......
  • mysql主从
    今日内容1python操作哨兵#高可用架构后---》不能直接连某一个主库了---》主库可能会挂掉,后来它就不是主库了#之前学的连接redis的操作,就用不了了importredisconn=redis.Redis(host='',port=6379)conn.set()conn.close()#新的连接哨兵的操作#连接哨兵服务器(主机......
  • 使用Docker安装Mysql
    mysql官方DockerHub地址:https://hub.docker.com/_/mysql可选的环境变量:MYSQL_ROOT_PASSWORDMYSQL_DATABASEMYSQL_USER,MYSQL_PASSWORDMYSQL_ALLOW_EMPTY_PASSWORDMYSQL_RANDOM_ROOT_PASSWORDMYSQL_ONETIME_PASSWORDMYSQL_INITDB_SKIP_TZINFO创建一个环境变量配置文件,vi......
  • shell 改mysql
    mysql-h100.200.300.400 -uaaaaa-pxxx  -P3306-e"usepth;selectuser_id,min(start_time),attendance_typefromtb_kkkkkkwhereyear=2023andmonth=4andday=21andstart_timeisnotnullgroupbyuser_id">rs2222.txtsed-i's#\t##g&......
  • mysql undo log管理
    MySQLundolog管理在InnoDB存储引擎中,undolog是采用分段(segment)的方式进行存储的。rollbacksegment称为回滚段,每个回滚段中有1024个undologsegment。在MySQL5.5之前,只支持1个rollbacksegment,也就是只能记录1024个undo操作。在MySQL5.5之后,可以支持128个rollbacksegment......
  • MySQL-mysqldump原理
    mysqldump原理解析mysqldump命令执行和输出mysqldump--no-defaults-hlocalhost-uroot-p12345678-P3306--databaseseo_oslog--tablest1--single-transaction--master-data=2--set-gtid-purged=OFF>t1.sql日志输出2023-04-23T03:42:18.124438Z2Connect......
  • 读《mysql是怎样运行的》有感
    最近读了一本书《mysql是怎样运行的》,读完后在大体上对mysql的运行有一定的了解。在以前,我对mysql有以下的为什么:InnoDB中的表空间、段、区和页是什么?redolog为什么就能实现事务的持久性?到底什么是意向锁?意向锁有什么用?mysql中的外连接、内连接到底是什么?事务中的一致性到......
  • 批量替换 MySQL 指定字段中的字段
    批量替换MySQL指定字段中的字符串是数据库应用中很常见的需求,但是有很多初学者在遇到这种需求时,通常都是用脚本来实现;其实,MySQL内置的有批量替换语法,效率也会高很多;批量替换的具体语法是:Code:UPDATE表名SET指定字段=replace(指定字段,’要替......
  • C# Mysql The given key '12599' was not present in the dictionary.
    如果查询语句没有问题数据库连接字符串也没有问题,可能是Mysql.Data引用与当前安装的Mysql数据库版本不兼容的问题。我本地安装的mysql版本是8.30,在VS里使用Nuget程序包下载的Mysql.Data引用是其他更低的版本,将程序里用的Mysql.Data也更新到8.30就好了。版本保持一致。 ......