当前位置: 首页 > 知识库问答 >
问题:

使用mysql2运行大型INSERT查询时出现异常

邹锦
2023-03-14

我使用mysql2包对MySQL服务器运行查询

以下是连接设置

getConnection: function () {


   let host = "hostname.com";
   let database = "database_name";
   let username = "username";
   let password = "pwd";


   let con = mysql.createConnection({
      host: host,
      user: username,
      password: password,
      database: database,
      connectTimeout: 15000
   });

   return con;
},

它适用于所有查询,只有insert查询有26个参数:

    recordCreate: function (con, param1, param2,
       param3,  param4,  param5,  param6,  param7,
       param8,  param9,  param10, param11, param12,
       param13, param14, param15, param16, param17,
       param18, param19, param20, param21, param22,
       param23, param24, param25, param26, callback) {
       try {
         con.connect(function (err, result) {
                 try {
                      if (err) throw err;
                      con.query(“INSERT INTO tbldata (param1,
                           param2,  param3,  param4,  param5,  param6,
                           param7,  param8,  param9,  param10, param11,
                           param12, param13, param14, param15, param16,
                           param17, param18, param19, param20, param21,
                           param22, param23, param24, param25, param26
                   ) VALUES 
                   (?, ?, ?, ?, ?,
                    ?, ?, ?, ?, ?,
                    ?, ?, ?, ?, ?,
                    ?, ?, ?, ?, ?,
                    ?, ?, ?, ?, ?,
                    ?)”,[param1,  param2,  param3,  param4,  param5,
                         param6,  param7,  param8,  param9,  param10,
                         param11, param12, param13, param14, param15,
                         param16, param17, param18, param19, param20,
                         param21, param22, param23, param24, param25,
                         param26]
       , function (err) {
          try {
             if (err) throw err;
             callback(true);
          } catch (err) {
             callback(err);
          } finally {
             con.close();
          }
  });

我一直收到以下错误消息

C:\myprojects\tms\node_modules\mysql2\lib\commands\commands.js:30 this.onresult(err);^

TypeError:this.onresult不是Connection.Query.Execute(C:\myProjects\tms\node_module\mysql2\lib\commands\commandd.js:30:14)处的函数。HandlePacket(C:\myProjects\tms\node_module\mysql2\lib\connection.js:449:32)处的PacketParser.Connection.PacketParser.p[as

进程已完成,退出代码为%1

声明那些数据元素(参数)确实很小是很重要的。我们在这里讨论了简短的10个字符、字符串和数字

例如:

INSERT INTO tbldata (param1,  param2,  param3,  param4,  param5,
                     param6,  param7,  param8,  param9,  param10,
                     param11, param12, param13, param14, param15,
                     param16, param17, param18, param19, param20,
                     param21, param22, param23, param24, param25,
                     param26) VALUES 
                    (51, 'Test 51', '', '2019-12-01', '2019-12-01',
                      1, 1, 1, 3, 3, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 
                      0, 1, 1, 1, 3, 3);

我尝试在MySQL服务器上运行示例查询,它运行良好

共有1个答案

张光辉
2023-03-14

在缩小查询范围之后,我意识到这是一个愚蠢的语法问题。我要感谢Nico HaaseMartin对我的“头脑风暴”的帮助。

我赞赏mysql2团队的工作。我还希望他们能够通过query方法获得2个以上的参数来解决这个问题。

con.query("INSERT INTO tbldata (" +
                                "param1, " +
                                "param2, " +
                                "param3, " +
                                "param4, ", -- here is the syntax issue. Comma instead of plus
                                "param5) VALUES (?, ?, " +
                                "?, ?, " +
                                "?, ?, " +
                                "?)",
                                [param1,
                                    param2,
                                    param3,
                                    param4,
                                    param5]
 类似资料:
  • 我正在尝试使用连接获取运行查询,但我也在使用DTO投影来提高性能,但我得到了以下异常: org.hibernate.QueryException:查询指定的联接获取,但获取的关联的所有者不存在于选择列表中[FromElement{显式,不是集合联接,获取联接,获取非惰性属性,类Alias=pi,角色=returnitRest。Ereturn.productItems, tableName=prod

  • 员工与部门之间的关联是多对多的双向关联。 我正在尝试在删除受雇者之前删除关联

  • 以下是Liquibase输入文件: --更改集dank:1 runalways=true failonerror:false 删除表aaa_schema.foo IBM错误代码-104是关于语法问题的。根据查看错误消息,我猜测它与行尾字符“;”有关。但是我已经尝试了使用分号和不使用分号的查询。IBM自己的db2也接受分号,因此它似乎是一个有效的选择。 非常感谢在找出此错误原因方面的任何帮助。

  • 我得到了一些错误,我试图插入一些数据到mysql db中的一个表中,同时也想从另一个表中删除一些数据。我使用的是jsp、JDBC。我不明白为什么我会得到这个错误,这里是我的jsp页面的代码… else{String sql1; library是我的db名,而issue是我的表名

  • 当运行codeception时,我得到了很多错误:DeepCopy\DeepCopy::recursiveCopy。 这是个问题,让我困惑! 当我只有4个单元测试用例时,我使用codeception播放得很好: 当我仍然充满单元测试用例时,故事就发生了。 在我的测试类中有5个单元测试,然后我得到了这个: 下面是代码: php_error.log: PHP 195.#################

  • 问题内容: 我有带有库的IntelliJ项目:Hibernate-entitymanager 4.3.4和JPA 2.0-2.0。使用postgresql-9.3.1100.jdbc4连接到数据库。如何解决? jpa-ql>从ItemEntity中选择ItemEntity.name; 问题答案: 只需阅读文档: http://docs.oracle.com/javaee/7/api/javax/p