数据写入/保存
Insert
使用
INSERT INTO
语句进行数据库写入,如果写入的数据中存在主键或者唯一索引时,返回失败,否则写入一条新数据;Replace
Save
使用
INSERT INTO
语句进行数据库写入,如果写入的数据中存在主键或者唯一索引时,更新原有数据,否则写入一条新数据;
数据写入/保存方法往往需要结合Data
方法使用:
也可以不使用Data
方法,而给写入/保存方法直接传递数据参数:
r, err := db.Table("user").Replace(g.Map{"uid": 10000, "name": "john"})
r, err := db.Table("user").Save(g.Map{"uid": 10001, "name": "john"})
数据参数也常用struct
类型,例如当表字段为uid/name/site
时:
r, err := db.Table("user").Data(g.List{
{"name": "john_1"},
{"name": "john_2"},
{"name": "john_3"},
批量保存操作与单条保存操作原理是一样的,当写入的数据中存在主键或者唯一索引时将会更新原有记录值,否则新写入一条记录。
// INSERT INTO `user`(`uid`,`name`) VALUES(10000,'john_1'),(10001,'john_2'),(10002,'john_3')
// ON DUPLICATE KEY UPDATE `uid`=VALUES(`uid`),`name`=VALUES(`name`)
r, err := db.Table("user").Data(g.List{
{"uid":10000, "name": "john_1"},
{"uid":10001, "name": "john_2"},
}).Save()