ホームページ >データベース >mysql チュートリアル >MySQL の 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 サイトの他の関連記事を参照してください。