質問: MySQLで、一つのテーブル内でレコードをコピーしようと思います。 「一つのレコードの複製を複数行作成する」操作を1回の操作で実行することは可能でしょうか? 複数行挿入する場合は、「INSERT INTO VALUES(...),(...)」で実行できます。 単純に複製する場合は、「INSERT~SELECT」を使うことでできます。 しかし、「一つのレコードの複製を複数行挿入する方法」がわかりません。 一度コピー元のデータを読み込んでから、「INSERT INTO VALUES(...),(...)」を実行するか、「INSERT~SELECT」を複数回実行するかしかないのでしょうか? よろしくお願いいたします。 Mysql Ver.5.0.51a
回答: 少し強引ですが、適当なテーブルと結合して複製するのはどうでしょうか? 今後も使う場合は、適当なテーブルの部分は、 ダミーのレコードを返すストアドを作成してもいいかもです。 ``` INSERT INTO コピー先テーブル( col1 ,col2 ) SELECT copy_tbl.col1 ,copy_tbl.col2 FROM コピー先テーブル copy_tbl LEFT JOIN ( SELECT col1 FROM 適当なテーブル LIMIT 繰り返し件数 ) dummy_tbl ON 1 = 1; ```