質問

テーブルと外部キーの作成に問題があります。 (Errno:150)スクリーンショットの更新画像は次のとおりです。 http://img264.imagevenue.com/img.php?image=14866_db_122_223lo.jpg

問題はデータベース設計です。

-- -----------------------------------------------------
-- Table `mydb`.`projekt_user`
-- -----------------------------------------------------
CREATE  TABLE IF NOT EXISTS `mydb`.`projekt_user` (
  `UserID` INT NOT NULL ,
  `Name` VARCHAR(45) NULL ,
  PRIMARY KEY (`UserID`) )
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `mydb`.`projekt_auswahl`
-- -----------------------------------------------------
CREATE  TABLE IF NOT EXISTS `mydb`.`projekt_auswahl` (
  `UserID` INT NOT NULL ,
  `projekt_id` INT NOT NULL ,
  `projekt_kategorie_id` INT NOT NULL ,
  `projekt_attachment` VARCHAR(45) NULL ,
  PRIMARY KEY (`UserID`, `projekt_id`, `projekt_kategorie_id`) ,
  INDEX `UserID` (`UserID` ASC) ,
  CONSTRAINT `UserID`
    FOREIGN KEY (`UserID` )
    REFERENCES `mydb`.`projekt_user` (`UserID` )
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `mydb`.`projekt_kategorien`
-- -----------------------------------------------------
CREATE  TABLE IF NOT EXISTS `mydb`.`projekt_kategorien` (
  `projekt_kategorie_id` INT NOT NULL ,
  `kategorie` VARCHAR(45) NULL ,
  PRIMARY KEY (`projekt_kategorie_id`) ,
  INDEX `projekt_kategorie_id` (`projekt_kategorie_id` ASC) ,
  CONSTRAINT `projekt_kategorie_id`
    FOREIGN KEY (`projekt_kategorie_id` )
    REFERENCES `mydb`.`projekt_auswahl` (`projekt_kategorie_id` )
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `mydb`.`projekte`
-- -----------------------------------------------------
CREATE TABLE `projekte` (
  `projekt_id` INT NOT NULL ,
  `projektname` VARCHAR(45) NULL ,
  `projekt_status` VARCHAR(45) NULL ,
  PRIMARY KEY (`projekt_id`) ,
  INDEX `projekt_id` (`projekt_id` ASC) ,
  CONSTRAINT `projekt_id`
    FOREIGN KEY (`projekt_id` )
    REFERENCES `mydb`.`projekt_auswahl` (`projekt_id` )
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;
役に立ちましたか?

解決

あなたは間違った方向に外国の鍵を持っており、テーブルを順番にロードする必要があります(子供の前に親):

-- -----------------------------------------------------
-- Table `mydb`.`projekt_user`
-- -----------------------------------------------------
CREATE  TABLE IF NOT EXISTS `mydb`.`projekt_user` (
  `UserID` INT NOT NULL ,
  `Name` VARCHAR(45) NULL ,
  PRIMARY KEY (`UserID`) )
ENGINE = InnoDB;

-- -----------------------------------------------------
-- Table `mydb`.`projekt_kategorien`
-- -----------------------------------------------------
CREATE  TABLE IF NOT EXISTS `mydb`.`projekt_kategorien` (
  `projekt_kategorie_id` INT NOT NULL ,
  `kategorie` VARCHAR(45) NULL ,
  PRIMARY KEY (`projekt_kategorie_id`) ,
  INDEX `projekt_kategorie_id` (`projekt_kategorie_id` ASC) 
ENGINE = InnoDB;

-- -----------------------------------------------------
-- Table `mydb`.`projekte`
-- -----------------------------------------------------
CREATE TABLE `projekte` (
  `projekt_id` INT NOT NULL ,
  `projektname` VARCHAR(45) NULL ,
  `projekt_status` VARCHAR(45) NULL ,
  PRIMARY KEY (`projekt_id`) ,
  INDEX `projekt_id` (`projekt_id` ASC))
ENGINE = InnoDB;

-- -----------------------------------------------------
-- Table `mydb`.`projekt_auswahl`
-- -----------------------------------------------------
CREATE  TABLE IF NOT EXISTS `projekt_auswahl` (
  `UserID` INT NOT NULL ,
  `projekt_id` INT NOT NULL ,
  `projekt_kategorie_id` INT NOT NULL ,
  `projekt_attachment` VARCHAR(45) NULL ,
  PRIMARY KEY (`UserID`, `projekt_id`, `projekt_kategorie_id`) ,
  INDEX `UserID` (`UserID` ASC) ,
  CONSTRAINT `UserID`
    FOREIGN KEY (`UserID` )
    REFERENCES `projekt_user` (`UserID` )
    ON DELETE NO ACTION
    ON UPDATE NO ACTION,
CONSTRAINT `projekt_kategorie_id`
    FOREIGN KEY (`projekt_kategorie_id` )
    REFERENCES `projekt_kategorien` (`projekt_kategorie_id` )
    ON DELETE NO ACTION
    ON UPDATE NO ACTION,
CONSTRAINT `projekt_id`
    FOREIGN KEY (`projekt_id` )
    REFERENCES `projekte` (`projekt_id` )
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;

あなたが提供したERDにもっと注意を払っていたら、「カラスの足」が上向きになっているのを見たことがあります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top