登录
首页 >  Golang >  Go问答

引用参数在 golang sqlc 中的使用

来源:stackoverflow

时间:2024-03-19 21:42:24 498浏览 收藏

在使用 Go 语言的 sqlc 生成数据库方法时,正确使用引用参数至关重要。文章中提到的查询需要将 30 秒作为参数传递,但直接使用 $1 作为参数会导致错误。为了解决此问题,可以将参数强制转换为 interval 类型,例如: ```go query := `DELETE FROM demotable WHERE last_updated

问题内容

使用sqlc生成数据库方法。 有以下查询

-- name: removerows:exec
delete from demotable
where last_updated < (current_timestamp - interval '30' second);

我想传递 30 作为参数,但我使用了下面的查询,然后引号没有出现并且数据库给出错误。

-- name: removerows:exec
delete from demotable
where last_updated < (current_timestamp - interval $1 second);

尝试引用 $1 但 sqlc 认为它是字符串

-- name: RemoveRows:exec
DELETE FROM demotable
WHERE last_updated < (CURRENT_TIMESTAMP - INTERVAL '$1' SECOND);

正确答案


或者与其胡乱尝试欺骗类型系统,不如这样做

... - ($1 * interval '1 minute')

今天关于《引用参数在 golang sqlc 中的使用》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于的内容请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>