循环遍历mysql存储过程中的select操作的单个结果

时间:2012-10-13 20:12:50

标签: mysql loops stored-procedures

我正在尝试学习mysql中的存储过程,这可能不是你需要使用SP的最佳场景,但它仍然是一个学习过程:)

我有一张表,请说table1,其中包含以下列:

table1_name, table1_location

我有另一张表,说table2,后面有列

table2_name, table2_location

假设table1现在有5条记录,而table2是空白的。我想运行一个SP,并将所有table1_name和table1_location数据分别输入table2_name和table2_location。

这是我写的mysql代码 -

DELIMITER //
CREATE PROCEDURE INS()
BEGIN
SELECT table1_name, table1_location FROM table1;
SET name, location VARCHAR(50);
INSERT INTO table2 VALUES (name, location);
END //
DELIMITER ;

这段代码显然无效!我担心的是,由于已有5条记录,因此table1_name将是一个具有5个值的数组,而table1_location也将是一个具有5个值的数组,通常由SELECT操作返回。如何获取每个单元格值然后执行插入操作?

我对mysql / SP ...很新,跟我一起:)

谢谢!

1 个答案:

答案 0 :(得分:0)

不幸的是,对于您的学习,答案与存储过程无关。

插入可以获取选择的结果:

INSERT into table2
SELECT name, location
FROM table1

如果你遇到了真正需要在存储过程中循环行集的事情,请查看cursors