问题标签 [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.
rust - 使用 sqlx 将 n:m 关系映射到 Vec
我有 2 张桌子(工作场所和工人)有一个:m 关系。我的目标是拥有一个workplace
结构,Vec
其中包含所有相关的workers
. 我想使用 sqlx 来做到这一点。使用 Diesel 对我来说不是一个选择。
这是我在数据库方面想出的:
到目前为止,这是我的 rust 代码:
我尝试使用sqlx::query_as
宏,但我想不出一种方法来映射Vec<Worker>
rust - 如何在查询中动态插入列名!Rust 的 sqlx 中的宏
我正在使用sqlx crate与 Postgres 实例进行交互。
我有以下功能:
我想按表中的一列对结果进行排序,以metric
. 如果我只是传递一个带有列名的字符串,它就不起作用(即上面的代码被破坏了)。
正确的方法是什么?我在 google 的文档 / 中找不到任何内容。
rust - 如何使用 sqlx 模拟 rust 中的事务?
我目前正在使用actix-web
and构建应用程序sqlx
。我构建的架构与此源非常相似。
这基本上是一个包装数据库访问的特征,到目前为止一切都很好。但这假设每个方法都会从池中获取连接并执行它。没有办法共享事务工作流的连接(例如 SELECT FOR UPDATE ... process ... UPDATE)。
我可以使用哪个架构或库来实现这一目标?
rust - 在异步 rust 中处理重复插入数据库
这里是 rust 和异步编程的初学者。
我有一个功能可以在数据库中下载并存储一堆推文:
它被另一个函数在异步循环中调用:
有时两个异步任务会尝试同时插入相同的推文,从而产生以下错误:
请注意,代码在插入之前已经检查是否存在推文,因此这只发生在以下情况下:从任务 1 读取 > 从任务 2 读取 > 从任务 1 写入(成功)> 从任务 2 写入(错误)。
为了解决这个问题,到目前为止,我最好的尝试是放置一个unwrap_or_else()
子句,让其中一个任务失败,而不会在整个执行过程中惊慌失措。我知道至少有一个缺点——有时两项任务都会退出,推文永远不会被写出来。它发生在<1%的情况下,但它确实发生了。
我不知道的方法还有其他缺点吗?
处理这个问题的正确方法是什么?我讨厌丢失数据,更糟糕的是,这样做是不确定的。
PS我正在使用actix web
和sqlx
作为我的网络服务器/数据库库。
postgresql - 使用数字参数的动态查询中的表名替换
一旦我尝试用数字变量替换表名,代码就会中断。我在 $1 处出现语法错误。
我应该逃避它吗?
如果问题是数字参数,我可以尝试其他方法。
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
。
你知道这是一个错误还是我做错了?
rust - Rust Sqlx 处理 INSERT ON CONFLICT
我有一个查询,它将用户的数据插入到数据库中。它工作正常,但users
表在 上具有唯一索引username
,因此当尝试使用已经存在的用户名创建行时,它会引发错误:
&user
是一个函数参数,定义为:
使用此函数的端点match
用于检查它是否是Ok(user)
或其他任何东西,并返回其响应:
当由于该行试图被复制而出现错误时,我该怎么做才能捕捉到这种情况?情况是我需要在发生这种情况时返回不同的 HTTP 状态。
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
:
这是我的依赖项: