在节点mysql中执行存储过程后返回的rows对象
我有一个子查询正在执行,正在寻找insertId,但我得到的是一个没有任何信息的rows对象 我的存储过程在节点mysql中执行存储过程后返回的rows对象,mysql,sql,node.js,stored-procedures,Mysql,Sql,Node.js,Stored Procedures,我有一个子查询正在执行,正在寻找insertId,但我得到的是一个没有任何信息的rows对象 我的存储过程 CREATE PROCEDURE `day`(IN start DATE, IN end DATE, IN event_id INT) BEGIN WHILE start <= end DO INSERT INTO day(date, event_id) VALUES(start, event_id); SET start = start +
CREATE PROCEDURE `day`(IN start DATE, IN end DATE, IN event_id INT)
BEGIN
WHILE start <= end DO
INSERT INTO day(date, event_id) VALUES(start, event_id);
SET start = start + 1;
END WHILE;
END
用于行的控制台输出
[
{
"fieldCount": 0,
"affectedRows": 0,
"insertId": 0,
"serverStatus": 11,
"warningCount": 0,
"message": "",
"protocol41": true,
"changedRows": 0
},
{
"fieldCount": 0,
"affectedRows": 0,
"insertId": 0,
"serverStatus": 11,
"warningCount": 0,
"message": "",
"protocol41": true,
"changedRows": 0
},
{
"fieldCount": 0,
"affectedRows": 0,
"insertId": 0,
"serverStatus": 11,
"warningCount": 0,
"message": "",
"protocol41": true,
"changedRows": 0
},
{
"fieldCount": 0,
"affectedRows": 1,
"insertId": 0,
"serverStatus": 3,
"warningCount": 0,
"message": "",
"protocol41": true,
"changedRows": 0
}
]
期望和问题
由于存储过程的插入,我需要一些实际的信息 该存储过程实际上返回了什么吗?我的存储过程将定义一个要挂接的变量,返回的
如下所示:
DECLARE
the_id integer;
BEGIN
INSERT INTO the_table (first, last, address, zip)
VALUES (first, last, address, zip)
RETURNING _id INTO the_id;
RETURN the_id;
END;
返回实际上将ID发送到输出
免责声明:我使用PostgreSQL并在plpsql中编写函数,但我相信语法是类似的。谢谢Joel,但它会返回多个值吗?我的存储过程是一个循环,根据开始日期和结束日期插入多个记录否-这只会返回一个值。我相信您可以将查询包装在return()
中,或者简单地将作为放在开始之前。您可能还想查看REF CURSOR
类型,但我不太精通该语法。
DECLARE
the_id integer;
BEGIN
INSERT INTO the_table (first, last, address, zip)
VALUES (first, last, address, zip)
RETURNING _id INTO the_id;
RETURN the_id;
END;