Golang 在数据库 QueryRow 查询不到数据时,自动插入一条

文章目录

    使用 Golang databae/sql 这个库进行 MySQL 查询时,QueryRow 如果查询不到数据,会报错:

    sql: no rows in result set
    go/models/kv.go:18 (0x9f49b5)
    

    对应的代码

    err := db.QueryRow("SELECT id, `key`, value FROM kv where `key` = ?",
    	key).Scan(&kv.Id, &kv.Key, &kv.Value)
    if err != nil {
    	panic(err.Error()) // 第18行
    }
    

    我想在查询不到数据时,自动插入一行默认数据,这样就省得我手动去创建一条测试数据了。

    if err == sql.ErrNoRows {
    	db.Exec("insert into kv (`key`, value) values (?, 1)", key)
    } else if err != nil {
    	panic(err.Error())
    }
    

    关于作者 🌱

    我是来自山东烟台的一名开发者,有感兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊,或者关注我的个人公众号“大象工具”, 查看更多联系方式