问题标签 [rust-sqlx]

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.

0 投票
0 回答
253 浏览

rust - 使用 sqlx 将 n:m 关系映射到 Vec

我有 2 张桌子(工作场所和工人)有一个:m 关系。我的目标是拥有一个workplace结构,Vec其中包含所有相关的workers. 我想使用 sqlx 来做到这一点。使用 Diesel 对我来说不是一个选择。

这是我在数据库方面想出的:

到目前为止,这是我的 rust 代码:

我尝试使用sqlx::query_as宏,但我想不出一种方法来映射Vec<Worker>

0 投票
1 回答
606 浏览

rust - 如何在查询中动态插入列名!Rust 的 sqlx 中的宏

我正在使用sqlx crate与 Postgres 实例进行交互。

我有以下功能:

我想按表中的一列对结​​果进行排序,以metric. 如果我只是传递一个带有列名的字符串,它就不起作用(即上面的代码被破坏了)。

正确的方法是什么?我在 google 的文档 / 中找不到任何内容。

0 投票
0 回答
646 浏览

rust - 如何使用 sqlx 模拟 rust 中的事务?

我目前正在使用actix-weband构建应用程序sqlx。我构建的架构与此源非常相似。

这基本上是一个包装数据库访问的特征,到目前为止一切都很好。但这假设每个方法都会从池中获取连接并执行它。没有办法共享事务工作流的连接(例如 SELECT FOR UPDATE ... process ... UPDATE)。

我可以使用哪个架构或库来实现这一目标?

0 投票
1 回答
180 浏览

rust - 在异步 rust 中处理重复插入数据库

这里是 rust 和异步编程的初学者。

我有一个功能可以在数据库中下载并存储一堆推文:

它被另一个函数在异步循环中调用:

有时两个异步任务会尝试同时插入相同的推文,从而产生以下错误:

请注意,代码在插入之前已经检查是否存在推文,因此这只发生在以下情况下:从任务 1 读取 > 从任务 2 读取 > 从任务 1 写入(成功)> 从任务 2 写入(错误)。

为了解决这个问题,到目前为止,我最好的尝试是放置一个unwrap_or_else()子句,让其中一个任务失败,而不会在整个执行过程中惊慌失措。我知道至少有一个缺点——有时两项任务都会退出,推文永远不会被写出来。它发生在<1%的情况下,但它确实发生了。

我不知道的方法还有其他缺点吗?

处理这个问题的正确方法是什么?我讨厌丢失数据,更糟糕的是,这样做是不确定的。

PS我正在使用actix websqlx作为我的网络服务器/数据库库。

0 投票
0 回答
270 浏览

rust - rust-sqlx:惰性实例先前已中毒

我正在尝试cargo fix在使用slqx的项目上运行并收到以下错误:

...对于我的代码中的每个 sqlx 宏实例。奇怪的是它过去工作得很好,但由于某种原因现在不行了。

我发现的谷歌上唯一提到的错误是here,但我认为这无关紧要。

可能有什么问题?

0 投票
0 回答
29 浏览

postgresql - 使用数字参数的动态查询中的表名替换

一旦我尝试用数字变量替换表名,代码就会中断。我在 $1 处出现语法错误。

我应该逃避它吗?

如果问题是数字参数,我可以尝试其他方法。

0 投票
1 回答
112 浏览

postgresql - 使用 sqlx 在 Postgres 中查询 BYTEA

我在 Postgres DB 中有下表:

我想使用以下准备好的语句sqlx

问题出现在以下行: AND value :: BYTEA LIKE $2 :: BYTEA

Postgres DB 错误响应是: ERROR: operator does not exist: character varying = bytea

查询执行如下:

对我来说,它看起来像是v被铸造成的,VARCHAR虽然它应该是BYTEA

你知道这是一个错误还是我做错了?

0 投票
1 回答
1034 浏览

rust - Rust Sqlx 处理 INSERT ON CONFLICT

我有一个查询,它将用户的数据插入到数据库中。它工作正常,但users表在 上具有唯一索引username,因此当尝试使用已经存在的用户名创建行时,它会引发错误:

&user是一个函数参数,定义为:

使用此函数的端点match用于检查它是否是Ok(user)或其他任何东西,并返回其响应:

当由于该行试图被复制而出现错误时,我该怎么做才能捕捉到这种情况?情况是我需要在发生这种情况时返回不同的 HTTP 状态。

0 投票
1 回答
302 浏览

rust - 使用 sqlx 绑定数据时,为什么会出现“输入末尾的语法错误”?

我正在寻找通过我的 SQL 字符串绑定数据:

我收到此错误:

我努力了:

$@而不是?。我和文档一样。

我该如何解决这个错误?

0 投票
0 回答
193 浏览

rust - actix web - sqlx - juniper:我得到'尝试使用同步解析器解析 Some("Query") 类型的异步字段用户'

我正在尝试在我的 Rust 项目中使用 Actix-SQLx-Juniper。我遵循并结合了我找到的任何教程,它成功编译并运行。但是当我尝试发布查询时,我在终端中收到了这个错误:

我的 GraphiQL 显示"Thread pool is gone"


这是src/graphql.rs


但是在我跟踪错误之后,当我尝试execute_sync在我的src/handler.rs

我试图找到解决方案或样板代码,但仍然找不到。


这是我的main.rs

这是我的依赖项: