如何在sqlc(搭配pgx)中正确使用布尔类型
在sqlc(搭配pgx)中正确使用布尔类型的解决方法
问题场景
使用sqlc搭配pgx开发,配置完sqlc.yaml、schema.sql、query.sql后,生成的Go代码里CreateUserParams结构体的Superuser字段类型为pgtype.Bool。尝试将普通bool类型变量直接赋值给该字段时,出现以下错误:
cannot use superuser (variable of type bool) as pgtype.Bool value in struct literal
解决方法
pgtype.Bool是pgx提供的带有效性标记的结构体类型,而非原生布尔类型。需要通过结构体初始化的方式赋值,明确指定布尔值并标记该值有效:
Superuser: pgtype.Bool{Bool: superuser, Valid: true}
修改后即可解决类型不匹配的问题,让sqlc正确处理这个布尔参数。
内容的提问来源于stack exchange,提问作者Bino Oetomo
相关产品推荐
相关产品推荐

