2011-12-19 21 views
6

Veritabanım şu anda InnoDB motorunu kullanıyor. Şimdi tam metin arama özelliğini eklemek istiyorum, bu yüzden tablolarımı MyISAM'a dönüştürmek istiyorum. Ama bunu yapmak tüm yabancı anahtarları kırar. Masa motorlarımı MyISAM'e nasıl güvenli bir şekilde değiştirebilirim?Tabloyu InnoDB ile MyISAM arasında dönüştürmenin en güvenli yolu nedir?

Tablolarımı MyISAM motoruna değiştirdikten sonra SELECT ... JOIN'i nasıl kullanabilirim?

ALTER TABLE jobs ENGINE = MyISAM; 
Cannot delete or update a parent row: a foreign key constraint fails 

cevap

6

ben MyISAM için InnoDB o dosyadan tüm metni değiştirmek, db bir dökümü yapmanı tavsiye ederim, daha sonra değiştirilmiş dosyayı

4

Bildiğim kadarıyla yük MyISAM değil destekleri yapar yabancı anahtarlar (InnoDB tarafından sunulan özellikleri karşılaştırmak için MyISAM). MySQL, motorunuzu MyISAM'a değiştirmeden önce jobs tablonuza referans veren her yabancı anahtar kısıtını bırakmanız gerektiğini söylemeye çalışır.

+0

Bir tabloyu dönüştürürken aynı hata mesajını aldım ve tüm yabancı anahtar kısıtlamalarını sildikten sonra dönüşüm mükemmel bir şekilde çalıştı. Yani tam olarak Kohanyi'nin söylediği gibi! (lütfen bunları silmeden önce ne yaptığınızı düşünün ... benim durumumda, kısıtlamalar işe yaramazdı, ancak bazı durumlarda bir sebepten dolayı orada olabilirler (bazı uygulamalar yüklenirse DB bütünlüğünü garanti altına almak için?) ;-) – lucaferrario

İlgili konular