SORU
6 HAZİRAN 2013, PERŞEMBE


MySQL Hata 1215: yabancı anahtar kısıtlaması Ekle

İleri db sunucum üzerine yeni şema mühendis olmaya çalışıyorum ama bu hatayı alıyorum neden olduğunu çözemedim. Denedim aramak için cevabı burada, ama her şeyi buldum dedi ya set db motoru Orada ya da emin olmak için tuşları deniyorum olarak bir yabancı anahtar, birincil anahtarları kendi tabloları. Eğer yanlışım yoksa bu iki şeyi de yaptım. Siz teklif verebilecek başka bir yardım?

Executing SQL script in server

ERROR: Error 1215: Cannot add foreign key constraint

-- -----------------------------------------------------
-- Table `Alternative_Pathways`.`Clients_has_Staff`
-- -----------------------------------------------------

CREATE  TABLE IF NOT EXISTS `Alternative_Pathways`.`Clients_has_Staff` (
  `Clients_Case_Number` INT NOT NULL ,
  `Staff_Emp_ID` INT NOT NULL ,
  PRIMARY KEY (`Clients_Case_Number`, `Staff_Emp_ID`) ,
  INDEX `fk_Clients_has_Staff_Staff1_idx` (`Staff_Emp_ID` ASC) ,
  INDEX `fk_Clients_has_Staff_Clients_idx` (`Clients_Case_Number` ASC) ,
  CONSTRAINT `fk_Clients_has_Staff_Clients`
    FOREIGN KEY (`Clients_Case_Number` )
    REFERENCES `Alternative_Pathways`.`Clients` (`Case_Number` )
    ON DELETE NO ACTION
    ON UPDATE NO ACTION,
  CONSTRAINT `fk_Clients_has_Staff_Staff1`
    FOREIGN KEY (`Staff_Emp_ID` )
    REFERENCES `Alternative_Pathways`.`Staff` (`Emp_ID` )
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB

Yürütme bitmiş SQL komut: tablolar: 7, 1 başarısız başarılı oldu

Burada ana tablo için SQL.

CREATE  TABLE IF NOT EXISTS `Alternative_Pathways`.`Clients` (
  `Case_Number` INT NOT NULL ,
  `First_Name` CHAR(10) NULL ,
  `Middle_Name` CHAR(10) NULL ,
  `Last_Name` CHAR(10) NULL ,
  `Address` CHAR(50) NULL ,
  `Phone_Number` INT(10) NULL ,
  PRIMARY KEY (`Case_Number`) )
ENGINE = InnoDB

CREATE  TABLE IF NOT EXISTS `Alternative_Pathways`.`Staff` (
  `Emp_ID` INT NOT NULL ,
  `First_Name` CHAR(10) NULL ,
  `Middle_Name` CHAR(10) NULL ,
  `Last_Name` CHAR(10) NULL ,
  PRIMARY KEY (`Emp_ID`) )
ENGINE = InnoDB

CEVAP
6 HAZİRAN 2013, PERŞEMBE


Clients.Case_Number ve/veya Staff.Emp_ID Clients_has_Staff.Clients_Case_Number Clients_has_Staff.Staff_Emp_ID aynı veri türü değildir diye tahmin ediyorum.

Belki de ana tablodaki sütun INT UNSIGNED?

Her iki tabloda aynı veri türü olması gerekir.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Joshua Bane

    Joshua Bane

    24 Temmuz 2007
  • Stanislav Petrov

    Stanislav Pe

    7 ŞUBAT 2009
  • Triune Films

    Triune Films

    9 ŞUBAT 2006