【问题标题】:"code": "ER_PARSE_ERROR", "errno": 1064 on an SQL Valid Query in NodeJs“代码”:“ER_PARSE_ERROR”,“errno”:NodeJs 中的 SQL 有效查询上的 1064
【发布时间】:2020-06-30 04:03:46
【问题描述】:

"code": "ER_PARSE_ERROR", “错误”:1064, "sqlMessage": "您的 SQL 语法有错误;请查看与您的 MySQL 服务器版本相对应的手册,以获取正确的语法,以便在 'SET @last_id_in_users = LAST_INSERT_ID(); INSERT INTO sale_targets (user_id, mon' at line 1", "sqlState": "42000", “索引”:0,

NodeJs 在有效查询中向我抛出此错误。它肯定是有效的,因为在 phpmyadmin 中它可以成功运行。请帮帮我。

或者像这样使用 LAST_INSERT_ID() 一个接一个地使用多个插入的替代解决方案。

BEGIN;
INSERT INTO users (email, first_name, last_name, password, role_id) values ("test@tester.com", "test", "test", "$2b$10$dGZ0NArlvpE7M3J4SEuW4eXrDLR4/w218mdftB0eNuJInV6BS7V2.", 3); 
SET @last_id_in_users = LAST_INSERT_ID(); 
INSERT INTO sale_targets (user_id, monday, tuesday, wednesday, thursday, friday, saturday, sunday) VALUES(LAST_INSERT_ID(), '0', '0','0','0','0','0','0'); 
INSERT INTO close_ratio (user_id, monday, tuesday, wednesday, thursday, friday, saturday, sunday) VALUES(@last_id_in_users,'0', '0','0','0','0','0','0'); 
INSERT INTO lead_targets (user_id, monday, tuesday, wednesday, thursday, friday, saturday, sunday) VALUES(@last_id_in_users,'0', '0','0','0','0','0','0'); 
COMMIT;

我的节点查询连接:

    const q = `BEGIN; INSERT INTO users (email, first_name, last_name, password, role_id) 
values ("${rBody.email}", "${rBody.firstName}", "${rBody.lastName}", "${hash}", ${roleId}); 
SET @last_id_in_users = LAST_INSERT_ID(); 
INSERT INTO sale_targets (user_id, monday, tuesday, wednesday, thursday, friday, saturday, sunday); 
VALUES(LAST_INSERT_ID(), '0', '0','0','0','0','0','0'); 
INSERT INTO close_ratio (user_id, monday, tuesday, wednesday, thursday, friday, saturday, sunday) 
VALUES(@last_id_in_users,'0', '0','0','0','0','0','0'); 
INSERT INTO lead_targets (user_id, monday, tuesday, wednesday, thursday, friday, saturday, sunday) VALUES(@last_id_in_users,'0','0','0','0','0','0','0'); 
COMMIT`;
                    connection.query(q, (err, resp) => {
                        if (err) {
                            // Error inserting into users table
                            resolve({
                                success: false,
                                error: err
                            })
                        } else {
                            // User succesfully created
                            resolve({
                                success: true,
                                message: 'User succesfully created',
                                id: resp.insertId
                            })
                            console.log(resp)
                        }

                    })

【问题讨论】:

  • MySQL 还是 SQL Server?
  • 我建议替代解决方案
  • 您可以查看this帖子的答案

标签: mysql sql node.js


【解决方案1】:

SET @last_id_in_users = SELECT LAST_INSERT_ID();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-11
    • 2021-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多