数据写入/保存

    1. Insert

      使用INSERT INTO语句进行数据库写入,如果写入的数据中存在主键或者唯一索引时,返回失败,否则写入一条新数据;

    2. Replace

    3. Save

      使用INSERT INTO语句进行数据库写入,如果写入的数据中存在主键或者唯一索引时,更新原有数据,否则写入一条新数据;

    数据写入/保存方法往往需要结合Data方法使用:

    也可以不使用Data方法,而给写入/保存方法直接传递数据参数:

    1. r, err := db.Table("user").Replace(g.Map{"uid": 10000, "name": "john"})
    2. r, err := db.Table("user").Save(g.Map{"uid": 10001, "name": "john"})

    数据参数也常用struct类型,例如当表字段为uid/name/site时:

    1. r, err := db.Table("user").Data(g.List{
    2. {"name": "john_1"},
    3. {"name": "john_2"},
    4. {"name": "john_3"},

    批量保存操作与单条保存操作原理是一样的,当写入的数据中存在主键或者唯一索引时将会更新原有记录值,否则新写入一条记录。

    1. // INSERT INTO `user`(`uid`,`name`) VALUES(10000,'john_1'),(10001,'john_2'),(10002,'john_3')
    2. // ON DUPLICATE KEY UPDATE `uid`=VALUES(`uid`),`name`=VALUES(`name`)
    3. r, err := db.Table("user").Data(g.List{
    4. {"uid":10000, "name": "john_1"},
    5. {"uid":10001, "name": "john_2"},
    6. }).Save()