请教一个关于 sqlc 的问题, 当我修改 query 之后造成 go 结构体字段的变化. 如何自定义?

2022-09-21 16:11:10 +08:00
 chaleaochexist

表 1 有两个字段挪到 表 2 上了. 之前的 query.sql 是这样的:

select * from t1

sqlc 生成的结构体是这样的:

type Haha struct {
	...
	Username       string `json:"username"`
	Password       string `json:"password"`
    ...
}

现在的 query.sql 长这样:

select t1.*, t2.*
from t1
left join t2
on t1.id=t2.pid

生成的结构体变这样了:

type Haha struct {
	Username       sql.NullString `json:"username"`
	Password       sql.NullString `json:"password"`
}

sql.NullString 这是个结构体, 导致我所有的业务代码都要改. 请问有没有什么办法能让他变回 string?

t2 join t1 这种方法不行. 因为我还有一些其他字段依赖 t1 相当于没解决问题.

sqlc 是否有针对这种情况进行考虑? config 中的 rename 感觉是全局修改, 自定义性不强.

第二个问题是各位大佬在使用 sqlc 的过程中, 针对表结构和 query.sql 的修改是如何设计的?

谢谢

866 次点击
所在节点    Go 编程语言
1 条回复
chaleaochexist
2022-09-21 16:14:47 +08:00
临时是这样解决的. 但是总感觉怪怪的.
```sql
select t1.*, t2.*,
t2.username::varchar(255) AS username,
t2."password"::varchar(255) AS "password",
from t1
left join t2
on t1.id=t2.pid

```

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/881913

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX