问题标签 [sqlc]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
go - 如何缩小此代码并合并 if 和 else 条件
if和else条件都遵循相同的代码流程,只是functions和struct不同,如何合并,让代码更小。我的意思是:
不能触摸 h.Repo.GetAllLatestProducts 或 h.Repo.GetLatestProductsByCategory 因为它们是外部函数。类型安全也很重要。
可以有多个功能,如特色产品,新产品,我想制作一个通用函数,根据动态选择的 sql 函数将产品返回为 json。
您遇到了问题,具有相同代码结构的数十个函数很糟糕,至少对我而言,它的可读性与否无关紧要,它只是重复的复制/粘贴,没有任何意义,主要是仅使用函数名称进行复制/粘贴/SQLC 生成函数名和结构名变化,其余代码流程相同。
SQLC 根据 SQL 查询生成自动代码,现在编写重复代码只是将结果转换为 JSON 并将其返回给客户端是浪费时间。可能有几十个 SQL 函数来返回最新产品、特色产品、类别中的产品、愿望清单产品、等等等等。
所有网站都了解产品结构,但 SQLC 返回不同的结构,因此没有单一的 dbResult 类型的东西。无论如何映射不是什么大事,使用反射我们可以在映射函数中检查具有相同名称的字段,并将 SQL.NullString 转换为字符串等。
真正的问题是我的 if/else 语句。您已经在不同的函数中移动了代码,但对我来说,在这种情况下它没有意义。因为web handler无论如何都要检查请求是否有效,是否定义了category,然后检查category是否为0,然后调用不同的函数,然后得到结果并返回给客户端。对于单个函数,它可能看起来更好,但对于实际生产,它会让事情变得更糟,而不是单个函数和 if/else 块,现在每个 API 都有 3 个函数。
我正在寻找它只是将 SQLC 结果映射到路由处理程序。代码流程始终相同,只是函数名称和结构名称发生变化。如何使其动态化,以便在我的 http 处理程序中,我可以简单地编写:
然后根据 c.Query("category") 中的类别值,SQLCResult 将自动调用 GetAllFeaturedProducts 或 GetFeaturedProductsByCategory。类似于函数作为回调的东西,但函数签名不同,这是一个问题。
映射函数不是必需的,因为在 SQLCResult 中,我们可以执行以下操作:
这将创建字段名称和索引的映射,并传递 dbresult 行,它将使用反射将其转换为 Product 结构并返回相同的内容,即在修改其字段后返回第一个参数作为结果。
我仍在寻找如何编写 SQLCResult 函数,将 SQLC 函数名称作为输入,然后返回结果,或者可以通过将 Product{} 结构本身放在 SQLCResult 函数中来使其更通用,例如:
SQLCResult 将根据布尔条件调用 GetAllFeaturedProducts 或 GetFeaturedProductsByCategory,并将函数结果映射到作为第一个参数传递的结构,然后返回该结构。
或者可能是这样的最终目标:
go - Go的sqlc是否支持join?
我正在阅读来自https://docs.sqlc.dev/en/latest/howto/query_count.html的 SQLC 文档。我想在我的项目中使用它。但是,我没有看到任何与表上的连接操作相关的文档。在 SQLC 中真的有可能吗?如果是,我在哪里可以找到文档或参考资料?
sql - golang和sqlc,生成查询时出现指针问题
我正在尝试使用 Golang 从维多利亚时代的数据组织中调用传输数据并将其存储在数据库中。
我正在使用 SQLC 尝试生成 SQL 代码来查询数据库并存储传入的数据。SQLC 在这里https://docs.sqlc.dev/en/stable/tutorials/getting-started.html。
SQL 代码如下所示
使用 SQLC 生成时,我收到这样的错误,
数据库模式目前看起来像这样,
我正在使用的 API 在这里,
现在 - 假设我输入的 SQL 有问题 - 但我不确定到底是什么。我在上面轮询这个 api,并想在它进来时添加所有额外的数据。也许 SQLC 有点矫枉过正——我只是希望能够简单地存储这些数据,并希望在处理这些数据时得到一些帮助。
谢谢!
postgresql - 为包含条件 where 的 sql 生成代码中的 SQLC 命名参数
我正在使用 golang SQLC 从 sql 生成 CRUD 操作 go 代码。
我的选择查询如下
SQLC 生成代码如下
有什么方法可以配置 sqlc 以便它使用名称和描述而不是 Column1 和 Column2SearchProductsParams struct
go - Sqlc 自动生成的代码 golang 的问题
错误
不能使用 tx(*sql.Tx 类型的变量)作为结构文字中的 DBTX 值:方法 ExecContext 的类型错误(具有 func(ctx context.Context,查询字符串,args ...接口{})(数据库/sql.Result , error), want func(context.Context, string, ...interface{}) (database/sql.Result, error)) compilerInvalidIfaceAssign
mysql - Golang SQLC 不生成结构
我正在使用 sqlc 和 mysql,由于某种原因,生成的用于执行查询的代码在应该插入或查询数据库的对象的函数中没有结构或字段。
我的创建表查询与此类似
查询看起来像这样
这是生成的
正如您在生成的代码中看到的那样,createUser
没有生成可以反过来将函数参数传递给的结构CreateUser
,对于getUserByUserId
没有在函数中传递的 userId 参数也是如此GetUserByUserId
。
不确定做错了什么,这是我的sqlc.yaml
文件的样子
postgresql - 我得到错误 SQLC generate with join, array
我正在使用 postgreSQL、golang、sqlc 开发一个 API 服务器。
我的sql如下
并将sqlc generate
其翻译如下
当我在 TablePlus App 中测试时它可以工作。但是,来自 API 服务器的结果返回 like "artineve": "ezIsMTh9"
,但它必须是 like [11, 3, 4]
。
sql - 返回由 Posgresql 中的集合组成的值
我使用https://github.com/kyleconroy/sqlc生成代码。我想使用 group_id 数组返回 human_id。
返回
ERROR: set-returning functions are not allowed in WHERE (SQLSTATE 0A000)
在我的理解中,... IN (UNNEST($1::uuid[]));
变成IN ('...','...','...');
sql - 将json插入数据库
我使用https://github.com/kyleconroy/sqlc
这是一个用于生成代码的库。我的查询
sqlc 生成此代码
我的代码
返回错误:ERROR: invalid input syntax for type json (SQLSTATE 22P02)
重要的。如果您使用空 json,那么一切正常