0

私は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 つのレコードがあるため、通常 SELECT 操作によって返されるように、table1_name は 5 つの値を持つ配列のようなものになり、table1_location も 5 つの値を持つ配列になることです。各セル値を取得してから挿入操作を行うにはどうすればよいですか?

私はmysql/SPにまったく慣れていません..我慢してください:)

ありがとう!

4

1 に答える 1

0

残念なことに、その答えはストアド プロシージャとは何の関係もありません。

挿入は選択の結果を取ることができます:

INSERT into table2
SELECT name, location
FROM table1

ストアド プロシージャ内の行セット全体をループする必要がある場合は、cursorsを確認してください。

于 2012-10-13T21:02:50.730 に答える