ホームページ >データベース >mysql チュートリアル >MySQL の INSERT INTO...SELECT を使用するときにすべての列を効率的に保持する方法は?

MySQL の INSERT INTO...SELECT を使用するときにすべての列を効率的に保持する方法は?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-04 13:10:10480ブラウズ

How to Efficiently Preserve All Columns When Using MySQL's INSERT INTO...SELECT?

効率的な INSERT INTO...SELECT による列データの保持

すべての列を保持しながら、ある MySQL テーブルから別の MySQL テーブルにデータを転送する場合、共通の課題が生じます。 INSERT INTO this_table_archive (*) VALUES (SELECT * FROM this_table WHEREentry_date < '2011-01-01 00:00:00'); という形式を使用します。

MySQL マニュアルで説明されている正しい構文は次のとおりです。

INSERT INTO this_table_archive (col1, col2, ..., coln) 
SELECT col1, col2, ..., coln
FROM this_table
WHERE entry_date < '2011-01-01 00:00:00'; 

この改訂された形式では、ターゲット テーブル内の各列に明示的に名前が付けられています。すべてのデータが適切にコピーされていること。

さらに、id 列が自動インクリメントとして構成されており、両方のテーブルにデータが含まれている場合、列リストから除外すると有利です。これにより、重複した ID の挿入によって生じる潜在的な競合が防止されます。ただし、対象テーブルが空の場合は省略する必要はありません。

以上がMySQL の INSERT INTO...SELECT を使用するときにすべての列を効率的に保持する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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