MySQL での行のクローン作成: 明示的な列選択の代替手段
MySQL では、テーブル行を迅速かつ効率的に複製することがよく求められます。一般的なアプローチには、「SELECT *」を使用して行データを抽出し、それを同じテーブルに挿入し直すことが含まれます。ただし、この方法は、多数の列を含むテーブルでは扱いにくくなります。
Leonard Challis は、すべての列をリストする必要を回避する賢いソリューションを提案しました。
CREATE TEMPORARY TABLE tmptable_1 SELECT * FROM table WHERE primarykey = 1; UPDATE tmptable_1 SET primarykey = NULL; INSERT INTO table SELECT * FROM tmptable_1; DROP TEMPORARY TABLE IF EXISTS tmptable_1;
この手法には、目的の行を保存する一時テーブル。この一時テーブルの主キーは null に設定され、挿入中に MySQL が新しい値を生成できるようになります。単一行が確実に取得されるようにするには、INSERT INTO ステートメントに「LIMIT 1」を追加します。
意図した行のみが挿入されることをさらに確実にするには、主キー値を一時テーブル名に追加する必要があります。コードスニペットに見られるように。この手法により、明示的な列選択を必要とせずに行コピーのプロセスが簡素化され、MySQL で大規模なテーブルを管理するための貴重なツールになります。
以上が明示的に列を選択せずに MySQL で行のクローンを作成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。