2012-03-28 18 views
29

私はいくつかのテーブルに取り組んでおり、それらの間にいくつかのデータの不一致があります...特定のテーブル(テーブルXと呼ぶ)その表には外部キー列を持つ複数の行があります。MySQL:外部キー制約を無視して行を削除します

私がやりたいことは、テーブルXの重複した行を削除することですが、外部キーの制約によってこれができなくなっています。私は何をやっているのか分かっているので、外来キーの制約を無視しながら強制的に行を削除する方法はありますか?外部キーのチェックからMySQLを防ぐことができます

+1

はあなたが台無しにあなたのDBをのSET FOREIGN_KEY_CHECKS = 0を使用していることに注意して影響を与えたいと思ったならば、それを後で追加することができます何が結果になるか正確に分かっている場合にのみ使用してください。私は私のPHPバックアップスクリプトのためだけに使用します。 – DevWL

+0

もちろん、そうすることは危険です。私が行っていることを正確に知っているときにのみ使用します。 –

答えて

88

SET foreign_key_checks = 0

。それが完了したら、必ず1に戻してください。また

、あなたは常に外部キーをドロップすると、あなただけの特異なキー

ALTER TABLE t DROP FOREIGN KEY fk

+0

ありがとうございました:) –

+2

セッションからすぐにログアウトしている場合は、外部キーチェックを1に戻す必要はありません。 – dewd

+0

私は複数のテーブルを持っているので、私はどのようにこれを行うことができますので、私はすべてのテーブルからこのフィールドを削除したいです。これは動作しません – karan

関連する問題