最近、データベースを別のサーバーに移行しました。
古いサーバーでは、InnoDB の ON DELETE CASCADE ルールを多用しました。
新しいサーバーでは、MySql に InnoDB エンジンが設定されていませんでした。
移行の時点で、新しいサーバーは MyISAM にデフォルト設定されていましたが、私は今までこれに気づきませんでした。(頭を壁にぶつけて!)
状況は次のとおりです。データベースが使用されているため、ON DELETE CASCADE ルールを使用していたテーブルの一部が同期しなくなりました。(まだ頭を壁にぶつけている。)
つまり、テーブルを InnoDB に変更してカスケード ルールを再適用することはできません。キーの一部は、存在しなくなった行を参照するようになりました。
私の質問はこれです:
挿入されている行のいずれかがカスケード規則に違反している場合、その行を黙って無視して次の行に移動するように INSERT ステートメントを構成する方法はありますか? (最初は、INSERT IGNORE でこれを達成できると思っていましたが、試してみましたが、うまくいかないようです。)
よろしくお願いいたします。