为啥当我使用柴油 insert_into 数据到数据库时出现“找不到名为 `execute` 的方法”错误?

Posted

技术标签:

【中文标题】为啥当我使用柴油 insert_into 数据到数据库时出现“找不到名为 `execute` 的方法”错误?【英文标题】:why "no method named `execute` found" error have when i use diesel insert_into data to database?为什么当我使用柴油 insert_into 数据到数据库时出现“找不到名为 `execute` 的方法”错误? 【发布时间】:2021-05-01 01:41:04 【问题描述】:

当我使用柴油“insert_into”将数据插入数据库时​​遇到问题,任何人都可以帮助我吗?

错误:

6 |             .execute(&*conn);
  |              ^^^^^^^ method not found in `InsertStatement<table, ValuesClause<(ColumnInsertValue<columns::id, diesel::expression::bound::Bound<diesel::sql_types::Integer, &i32>>, ColumnInsertValue<columns::username, diesel::expression::bound::Bound<diesel::sql_types::Text, &std::string::String>>, ColumnInsertValue<columns::postdata, diesel::expression::bound::Bound<diesel::sql_types::Text, &std::string::String>>), table>>`
  |
  = help: items from traits can only be used if the trait is in scope
  = note: the following trait is implemented but not in scope; perhaps add a `use` for it:
          `use crate::diesel::RunQueryDsl; 

代码:

    diesel::insert_into(post::table)
            .values(&post)
            .execute(&*conn);

架构:

table! 
    post (id) 
        id -> Integer,
        username -> Varchar,
        postdata -> Varchar,
    

【问题讨论】:

【参考方案1】:

正如编译器错误消息告诉您的那样,您在当前模块中错过了use crate::diesel::RunQueryDsl;。这意味着相应的特征不在范围内。

【讨论】:

以上是关于为啥当我使用柴油 insert_into 数据到数据库时出现“找不到名为 `execute` 的方法”错误?的主要内容,如果未能解决你的问题,请参考以下文章

为柴油模型定义结构时出现错误未定义类型或模块

如何在 graphQL 突变中使用柴油和杜松修复 mysql 的 sql 类型错误?

sql [INSERT INTO] #Syntax #Insert_into

如何使用锈柴油创建新数据库?

无法使用柴油箱从 mysql 数据库加载结果

如何使用柴油进行 IN 查询?