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

更新日期: 2019-11-03 阅读次数: 1499 字数: 136 分类: golang

使用 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())
}

爱评论不评论

近期节日

2020年04月01日 愚人节
2020年04月02日 国际儿童图书日
2020年04月03日 寒食节
2020年04月04日 清明节
2020年04月07日 世界卫生日
2020年04月11日 世界帕金森病日
2020年04月19日 谷雨
2020年04月21日 复活节
2020年04月22日 世界地球日
2020年04月23日 世界读书日
2020年04月26日 知识产权日
2020年04月30日 佛诞
查看更多节日