ホームページ  >  記事  >  データベース  >  明示的に列を選択せず​​に MySQL で行のクローンを作成するにはどうすればよいですか?

明示的に列を選択せず​​に MySQL で行のクローンを作成するにはどうすればよいですか?

DDD
DDDオリジナル
2024-11-10 19:07:03437ブラウズ

How to Clone a Row in MySQL without Explicitly Selecting Columns?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。