rust “trait `SupportsReturningClause`未为`Sqlite`实现”

e4yzc0pl  于 2023-10-20  发布在  SQLite
关注(0)|答案(2)|浏览(138)

我试图让柴油板条箱与SQLite工作,但离开入门指南,它似乎不适用于SQLite。
代码可以与postgres一起工作,但不能与sqlite一起工作。

diesel::insert_into(schema::subscriptions::table)
      .values(&new_subscription)
      .get_result(&connection)
      .expect("Error saving new subscription")

误差

error[E0277]: the trait bound `Sqlite: SupportsReturningClause` is not satisfied
  --> src/responder.rs:41:12
   |
41 |           .get_result(&connection)
   |            ^^^^^^^^^^ the trait `SupportsReturningClause` is not implemented for `Sqlite`

我可以在the documentation中看到一些关于柴油返回条款的参考资料,但我不完全确定我应该把它改成什么。

fbcarpbf

fbcarpbf1#

使用execute而不是get_results适用于SQLite。但这不会返回查询结果,因此必须运行第二个查询来获取更新的值。

oug3syen

oug3syen2#

根据指南:
在SQLite后端,可以通过一个特性标志returning_clauses_for_sqlite_3_35来启用对RETURNING子句的支持。
事实上,它适用于Diesel 2.1.1和SQLite 3.39.5:

[dependencies]
diesel = { version = "2.1.1", features = ["sqlite", "returning_clauses_for_sqlite_3_35"] }

相关问题