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

更新日期: 2019-11-03 阅读次数: 4501 字数: 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())
}
领取阿里云/腾讯云服务器优惠券

关于作者

我是来自山东烟台的一名开发者,喜欢瞎折腾,顺便记记笔记。有敢兴趣的话题,欢迎加微信 zhongwei 聊聊, 查看更多联系方式。 白天写程序,晚上哄熊孩子,可能回复有点慢,见谅。同时也欢迎关注我的微信公众号“大象工具”: 大象工具微信公众号

相关文章

爱评论不评论

近期节日

2020年12月01日 世界艾滋病日
2020年12月03日 国际残疾人日
2020年12月07日 大雪
2020年12月09日 "一二九"运动纪念日
2020年12月09日 世界足球日
2020年12月10日 世界人权日
2020年12月12日 西安事变纪念日
2020年12月13日 南京大屠杀
2020年12月20日 澳门回归日
2020年12月21日 国际篮球日
2020年12月21日 冬至
2020年12月24日 平安夜
查看更多节日