MySQLで「DELETE CASCADE」が設定できない場合の確認項目

mysql-delete-cascase-setting-error.gif

MySQLでデータをインポートしようとして失敗したり、インポートしたデータに「DELETE CASCADE」を設定しようとして失敗した経験はありませんか?

原因は関連先とのデータ整合性の欠如

この原因はフィールドに設定しようとしている外部キーにそのデータが存在しない場合に発生します。 例えば「DELETE CASCADE」を設定しようとしているフィールドの値に「100」があり、そのフィールドと関連付けようとしているフィールドに「100」というデータが存在していない場合ですね。

対策は、データをちゃんと合わせること

この場合は「DELETE CASCADE」を設定しようとしているフィールドの「100」が設定されているフィールドを削除するか、関連先のテーブルに「100」が設定されている行を追加することで設定することができます。

確かに、リレーションを設定しようとしているのに該当するデータが存在しないのですから、エラーが出るのも当然ですね。 事前にデータの整合性は合わせておきましょうってことで。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

2012-07-25