使用 derive Insertable for float

Use derive Insertable for float

我从 Rust 中的柴油机和火箭开始,在向数据库插入浮点值时遇到了问题。 我的结构看起来像:

#[derive(Serialize, Deserialize, Insertable)]
#[table_name = "database"]
pub struct New_Data{
    pub data1: f64,
    pub data2: f64,
    pub data3: f64,
}

我得到这个错误:不满足特征界限 f64: diesel::Expression 标签:特征 diesel::Expression 没有为 f64 实现, 注意:需要,因为 diesel::expression::AsExpression<diesel::sql_types::Numeric>f64

的实现有要求

我读到柴油有点使用它自己的 data/SQL 类型,但我不知道如何声明 Float。 我还尝试使用 diesel::sql_types::Float 和类似的错误消息。

这看起来像是在柴油机自动生成的 schema.rs 中定义的字段架构类型与您在 New_Data 中定义的字段类型不匹配。在自动生成的架构中查看 data1 -> 定义,您可能会发现类似以下内容:

data1 -> Float4

在这种情况下,字段的类型需要是 f32。否则,如果是Float8,那么类型应该是f64。 diesel 模式类型语言之间的这种映射进一步扩展到 Option 和 Nullable。如果它在模式中显示为 Nullable<Float4>,那么它在类型中应该是 Option<f32>