2012-03-28 17 views
29

Bu yüzden birkaç tablo üzerinde çalışıyorum ve bunlar arasında bazı veri tutarsızlıkları var ... Bir veya iki tablo belirli bir tabloda yabancı anahtar kısıtlaması var (tablo X olarak adlandırın) Ancak bu tablonun yabancı anahtar sütunu ile birden çok satırı vardır.MySQL: yabancı anahtar kısıtlaması yok sayılan bir satır silme

Yapmak istediğim, X tablosundaki yinelenen satırları kaldırmaktır, ancak yabancı anahtar kısıtlaması bunu yapmamı engelliyor. Ne yaptığımı bildiğimden beri yabancı anahtar kısıtını göz ardı ederek satırları silmeye zorlamanın bir yolu var mı? yabancı anahtarları denetlemesini MySQL önleyecektir

+1

Eğer altüst DB SET foreign_key_checks = 0 kullanırken can unutmayın etkileyecek istiyorsa o zaman daha sonra ekleyebilirsiniz Sadece tam olarak ne olacağını bilerek kullanın. Ben sadece php yedekleme betiğimde kullanıyorum. – DevWL

+0

Elbette, bunu yapmak tehlikeli olacak ve sadece ne yaptığımı bildiğim zaman kullanacağım. –

cevap

88

SET foreign_key_checks = 0

. İşiniz bittiğinde tekrar 1'e ayarladığınızdan emin olun. Ayrıca

, her zaman yabancı anahtar bırakın ve sadece tekil bir anahtar

ALTER TABLE t DROP FOREIGN KEY fk

+0

Bu kadar uygun teşekkürler :) –

+2

Eğer oturumdan hemen çıkış yapıyorsanız 1'e geri yabancı anahtar kontrolü ayarlamak zorunda değilsiniz sanırım. – dewd

+0

Birden fazla tablonuz var bu yüzden bu alanı tüm tablodan silmek istiyorum, bunu nasıl yapabilirim? Bu işe yaramaz – karan

İlgili konular