SORU
26 Temmuz 2010, PAZARTESİ


Olamaz ya da bir üst satırı sil güncelleme: yabancı anahtar kısıtlaması başarısız

Bu hata mesajı alıyorum:

HATA 1217 (23000) at line 40: Olamaz silmek ya da bir üst satır güncelleme: yabancı anahtar kısıtlaması başarısız olur

... bırakmak için çalışırken bir tablo:

DROP TABLE IF EXISTS `area`;

... bu şekilde tanımlanmış:

CREATE TABLE `area` (
  `area_id` char(3) COLLATE utf8_spanish_ci NOT NULL,
  `nombre_area` varchar(30) COLLATE utf8_spanish_ci NOT NULL,
  `descripcion_area` varchar(100) COLLATE utf8_spanish_ci NOT NULL,
  PRIMARY KEY (`area_id`),
  UNIQUE KEY `nombre_area_UNIQUE` (`nombre_area`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_spanish_ci;

İşin garibiZaten tüm diğer tablolar bıraktışemada area karşı yabancı anahtarları var. Aslında veritabanı area tablo dışında boş.

Nasıl eğer veritabanında herhangi bir nesne değil, eğer yok alt satır olabilir? Bildiğim kadarıyla, Bunu diğer şemalar üzerinde yabancı anahtarları izin vermez, değil mi?

(Bile RENAME TABLE area TO something_else Bir komut çalıştırabilirsiniz :-?)

CEVAP
7 Kasım 2013, PERŞEMBE


Talep üzerine, şimdi bir cevap

Tarayıcı veya phpMyAdmin MySQL Sorgusu kullanarak, yeni bir bağlantı her sorgu için (bugs.mysql.com/bug.php?id=8280), gerekli bir sorgu, örneğin tüm açılan ifadeleri yazmak için yapım açıldığında görüntülenir.

SET FOREIGN_KEY_CHECKS=0; 
DROP TABLE my_first_table_to_drop; 
DROP TABLE my_second_table_to_drop; 
SET FOREIGN_KEY_CHECKS=1; 

Nerede SET FOREIGN_KEY_CHECKS=1 ekstra güvenlik önlemi olarak hizmet vermektedir...

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Andytokkallos

    Andytokkallo

    27 Kasım 2007
  • ASUS

    ASUS

    22 EKİM 2005
  • Kyler Briskey

    Kyler Briske

    20 ŞUBAT 2011