方法1: INSERT文を使用して行をコピーする方法
INSERT INTO テーブル名 (列1, 列2, 列3, ...)
SELECT 列1, 列2, 列3, ...
FROM テーブル名
WHERE 条件
上記のクエリでは、テーブル名
は対象のテーブル名を、列1, 列2, 列3, ...
はコピーする列の名前を指定します。WHERE
句を使用して特定の条件を指定することもできます。
例えば、users
テーブルのIDが1の行を新しいIDでコピーする場合は、次のようなクエリになります。
INSERT INTO users (ID, 列1, 列2, 列3, ...)
SELECT 新しいID, 列1, 列2, 列3, ...
FROM users
WHERE ID = 1
方法2: CREATE TABLE文とINSERT文を組み合わせて行をコピーする方法
CREATE TABLE 新しいテーブル名 AS
SELECT 列1, 列2, 列3, ...
FROM テーブル名
WHERE 条件;
ALTER TABLE 新しいテーブル名 MODIFY 列名 新しいデータ型;
上記のクエリでは、まずCREATE TABLE
文を使用して新しいテーブルを作成し、SELECT
文を使用してコピーする行を選択します。その後、ALTER TABLE
文を使用して新しいテーブルの列のデータ型を変更します。
例えば、users
テーブルのIDが1の行を新しいテーブルでコピーし、新しいテーブルのID列のデータ型を変更する場合は、次のようなクエリになります。
CREATE TABLE 新しいテーブル名 AS
SELECT 列1, 列2, 列3, ...
FROM users
WHERE ID = 1;
ALTER TABLE 新しいテーブル名 MODIFY ID INT AUTO_INCREMENT;
これらはMySQLで行をコピーして新しいIDを持つ行を作成するための一般的な方法です。必要に応じて、テーブル名や列名、条件などを適切に変更してください。
以上が回答です。