0

gorm文档有个更新示例:http://gorm.io/zh_CN/docs/upd...

db.First(&user)

user.Name = "jinzhu 2"
user.Age = 100
db.Save(&user)

//// UPDATE users SET name='jinzhu 2', age=100, birthday='2016-01-01', updated_at = '2013-11-17 21:34:10' WHERE id=111;

问题:
最后一行注释,id=111是怎么来的?是上面的user默认有个id字段,gorm框架会自动把这个id字段放到sql查询语句的id那里去吗?那如果它不是id,是uuid呢,只能用where手动查询吗?

cherrylee 1.2k
2018-12-21 提问
2 个回答
1

db.First是获取到第一条记录,相当于sql语句 limit 1
这个时候绑定了user变量,user对象里其实已经有了user.id的值,并且值是111
所以这个时候user对象直接save的话,就相当于update了id=111这一条记录

0

是的,一般ORM的model都会自动生成id,如果是uuid需要手动处理

撰写答案

推广链接