方法1: INSERT文を複数回実行する
INSERT INTO テーブル名 (カラム1, カラム2, ...) VALUES (値1, 値2, ...);
INSERT INTO テーブル名 (カラム1, カラム2, ...) VALUES (値1, 値2, ...);
-- 必要な分だけINSERT文を繰り返す
この方法では、挿入する行ごとに個別のINSERT文を実行します。行数が多い場合は手間がかかるため、他の方法を検討することをおすすめします。
方法2: INSERT文とSELECT文の組み合わせ
INSERT INTO テーブル名 (カラム1, カラム2, ...)
SELECT 値1, 値2, ...
UNION ALL
SELECT 値1, 値2, ...
UNION ALL
-- 必要な分だけSELECT文を繰り返す
この方法では、SELECT文で挿入する値を指定し、それをINSERT文で挿入します。UNION ALLを使用して複数のSELECT文を結合し、一度に複数の行を挿入することができます。
方法3: ストアドプロシージャを使用する
DELIMITER //
CREATE PROCEDURE プロシージャ名()
BEGIN
-- ループ処理
DECLARE 変数名 データ型;
DECLARE カーソル CURSOR FOR SELECT カラム1, カラム2, ... FROM テーブル名;
OPEN カーソル;
ループ開始: LOOP
FETCH カーソル INTO 変数名;
IF @@FETCH_STATUS <> 0 THEN
LEAVE ループ開始;
END IF;
-- INSERT文を実行
INSERT INTO テーブル名 (カラム1, カラム2, ...) VALUES (変数名, ...);
END LOOP;
CLOSE カーソル;
END //
DELIMITER ;
この方法では、ストアドプロシージャを使用してループ処理を行います。カーソルを使用してテーブルからデータを取得し、取得したデータをINSERT文で挿入します。
これらはいくつかの一般的な方法ですが、他にもさまざまな方法があります。データの形式や処理の要件に応じて最適な方法を選択してください。