我正在尝试让柴油箱与 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`
我可以在文档中看到一些关于柴油退货条款的参考资料,但我不完全确定应该将其更改为什么才能使其正常工作。
使用
execute
而不是 get_results
适用于 SQLite。但这不会返回查询结果,因此必须运行第二个查询才能获取更新的值。
根据指南:
在 SQLite 后端,可以使用功能标志 returned_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"] }