我如何使用 i64
/u64
用柴油?
我真的需要实现 diesel::Expression
原始类型的特征?
这是我的代码。Cargo.toml
:
[dependencies]
...
diesel = { version = "1.4.5", features = ["sqlite", "numeric"] }
migration/up.sql
:CREATE TABLE books (
id INTEGER NOT NULL PRIMARY KEY,
size INTEGER NOT NULL
);
schema.rs
:table! {
books (id) {
id -> Integer,
size -> Integer,
}
}
来源:use crate::schema::books;
#[derive(Insertable, Queryable)]
#[table_name="books"]
pub struct BookRecord {
pub id: Id,
pub size: i64,
}
这给出了以下错误:error[E0277]: the trait bound `i64: diesel::Expression` is not satisfied
--> src/lib/models/book.rs:4:10
|
4 | #[derive(Insertable, Queryable)]
| ^^^^^^^^^^ the trait `diesel::Expression` is not implemented for `i64`
|
= note: required because of the requirements on the impl of `diesel::expression::AsExpression<diesel::sql_types::Integer>` for `i64`
= note: this error originates in a derive macro (in Nightly builds, run with -Z macro-backtrace for more info)
如何解决此错误?
最佳答案
i64
corresponds to BigInt
和 i32
corresponds to Integer
.要么更改您的架构以使用 BigInt
,或将您的号码更改为 i32
.
关于sqlite - 如何使用 Diesel 将 i64 与 Insertable 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63848682/