需要创建 MySQL 过程以根据条件从 table 获取数据并将它们插入另一个 table
Need to Create MySQL Procedure for getting data from table based on condition and insert them into another table
使用单个 MySQL 过程我需要编写查询以从 table 获取数据(结果也可以是列表)在获得结果后,需要插入那些 selected 行到同一数据库的另一个 table..我发现很难获得 select 查询的结果并获取要插入另一个 table 的值。 .
如果 return 只有一行,我可以执行上述操作,但在我的情况下,它可以 return 任意数量的行...
DELIMITER $$
USE `scmn_nov21`$$
DROP PROCEDURE IF EXISTS `procedure1`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `procedure1`(
IN Param1 VARCHAR(255),
OUT Param2 VARCHAR(255),
OUT Param3 VARCHAR(255)
)
BEGIN
DECLARE myvar TEXT;
SET myvar = (SELECT column1 FROM table1 WHERE column1 =2);
INSERT INTO table1 (column1,column2,column3)
VALUES (myvar,'Malaysia','Asia');
COMMIT;
END$$
DELIMITER ;
我相信你可以做一个 Create as select: http://dev.mysql.com/doc/refman/5.7/en/create-table-select.html
正在为您的查询返回 malassia 和 asia 作为固定值...
使用单个 MySQL 过程我需要编写查询以从 table 获取数据(结果也可以是列表)在获得结果后,需要插入那些 selected 行到同一数据库的另一个 table..我发现很难获得 select 查询的结果并获取要插入另一个 table 的值。 .
如果 return 只有一行,我可以执行上述操作,但在我的情况下,它可以 return 任意数量的行...
DELIMITER $$
USE `scmn_nov21`$$
DROP PROCEDURE IF EXISTS `procedure1`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `procedure1`(
IN Param1 VARCHAR(255),
OUT Param2 VARCHAR(255),
OUT Param3 VARCHAR(255)
)
BEGIN
DECLARE myvar TEXT;
SET myvar = (SELECT column1 FROM table1 WHERE column1 =2);
INSERT INTO table1 (column1,column2,column3)
VALUES (myvar,'Malaysia','Asia');
COMMIT;
END$$
DELIMITER ;
我相信你可以做一个 Create as select: http://dev.mysql.com/doc/refman/5.7/en/create-table-select.html
正在为您的查询返回 malassia 和 asia 作为固定值...