使用 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>
。
我从 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>
。