ある MySQL テーブルから別のテーブルにデータをインポートする必要があります。古いテーブルには、別の時代遅れの構造があります (これはあまり関係ありません)。そうは言っても、古いレコードの重複インポートを防ぐために、古いテーブルから元の ID を保存する「imported_id」という新しいテーブルにフィールドを追加しています。
私の質問は、実際に重複を防ぐにはどうすればよいですか? 新しいシステムが古いシステムと並行してロールアウトされるため、残念ながら、インポートを複数回実行する必要があります。「import_id」フィールドを PK/UNIQUE にすることはできません。これは、古いテーブルに由来しないフィールドに null 値が含まれるため、新しいフィールドを追加するときにエラーがスローされるためです。ネイティブに制約がない任意の列に対して、その場である種の INSERT IGNORE を使用する方法はありますか?
この問題について考えれば考えるほど、最初の SELECT で処理する必要があると思います。ただし、これを一般的に処理するための品質メカニズムに興味があります。
一番。