Не могу создать таблицу, errno: 150 - PullRequest
0 голосов
/ 13 декабря 2010

Что плохого в этих запросах для создания таблиц?

CREATE  TABLE IF NOT EXISTS `CVM`.`CANDIDATE` (
  `ID` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT ,
  `FULL_NAME` VARCHAR(64)  NOT NULL ,
  `HR_INTERVIEW_DATE` DATE NULL ,
  `JOB_SEARCH_STATUS` TINYINT(1)  NULL ,
  `REFERENCES_OPTIONAL` TEXT NULL ,
  `AVAILABILITY` TEXT NULL ,
  `LOCATION` VARCHAR(200) NULL ,
  `TRIP` TEXT NULL ,
  `INTERPERSONAL_RISKS` TEXT NULL ,
  `TECHNICAL_INTERVIEW_DATE` DATE NULL ,
  `EXPERIENCE_IT` TINYINT UNSIGNED NULL ,
  `EXPERIENCE_JAVA` TINYINT UNSIGNED NULL ,
  `ENGLISH_CHECK_DATE` DATE NULL ,
  `ENGLISH_READINESS_DIALOGUE` VARCHAR(100) NULL ,
  `ENGLISH_TIME_IMPROVMENT` TINYINT UNSIGNED NULL ,
  `ENGLISH_LEVEL_ID` INT NULL ,
  `LEVEL_ID` INT NULL ,
  `DESIRED_POSITIONS` VARCHAR(100) NULL ,
  `HR_COMMENT` TEXT NULL ,
  `EXPERT_COMMENT` TEXT NULL ,
  `FOREIGN_PASSPORT_ID` INT(11) UNSIGNED NULL ,
  `SALARY_ID` INT(11) UNSIGNED NULL ,
  `SSE_INFO_ID` INT(11) UNSIGNED NULL ,
  `EXPERT_NAME` VARCHAR(100) NULL ,
  `HR_NAME` VARCHAR(100) NULL ,
  `TEACHER_NAME` VARCHAR(100) NULL ,
  PRIMARY KEY (`ID`) ,
  INDEX `FK_CANDIDATE_ENGLISH_LEVEL1` (`ENGLISH_LEVEL_ID` ASC) ,
  INDEX `fk_CANDIDATE_LEVEL1` (`LEVEL_ID` ASC) ,
  INDEX `fk_CANDIDATE_FOREIGN_PASSPORT1` (`FOREIGN_PASSPORT_ID` ASC) ,
  INDEX `fk_CANDIDATE_SALARY1` (`SALARY_ID` ASC) ,
  INDEX `fk_CANDIDATE_SSE_INFO1` (`SSE_INFO_ID` ASC) ,
  CONSTRAINT `FK_CANDIDATE_ENGLISH_LEVEL1`
    FOREIGN KEY (`ENGLISH_LEVEL_ID` )
    REFERENCES `CVM`.`ENGLISH_LEVEL` (`ID` )
    ON DELETE NO ACTION
    ON UPDATE NO ACTION,
  CONSTRAINT `fk_CANDIDATE_LEVEL1`
    FOREIGN KEY (`LEVEL_ID` )
    REFERENCES `CVM`.`LEVEL` (`ID` )
    ON DELETE NO ACTION
    ON UPDATE NO ACTION,
  CONSTRAINT `fk_CANDIDATE_FOREIGN_PASSPORT1`
    FOREIGN KEY (`FOREIGN_PASSPORT_ID` )
    REFERENCES `CVM`.`FOREIGN_PASSPORT` (`ID` )
    ON DELETE NO ACTION
    ON UPDATE NO ACTION,
  CONSTRAINT `fk_CANDIDATE_SALARY1`
    FOREIGN KEY (`SALARY_ID` )
    REFERENCES `CVM`.`SALARY` (`ID` )
    ON DELETE NO ACTION
    ON UPDATE NO ACTION,
  CONSTRAINT `fk_CANDIDATE_SSE_INFO1`
    FOREIGN KEY (`SSE_INFO_ID` )
    REFERENCES `CVM`.`SSE_INFO` (`ID` )
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `CVM`.`CANDIDATE_HISTORY`
-- -----------------------------------------------------
CREATE  TABLE IF NOT EXISTS `CVM`.`CANDIDATE_HISTORY` (
  `ID` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT ,
  `CANDIDATE_ID` INT(11) UNSIGNED NOT NULL ,
  PRIMARY KEY (`ID`) ,
  INDEX `fk_CANDIDATE_HISTORY_CANDIDATE1` (`CANDIDATE_ID` ASC) ,
  CONSTRAINT `fk_CANDIDATE_HISTORY_CANDIDATE1`
    FOREIGN KEY (`CANDIDATE_ID` )
    REFERENCES `CVM`.`CANDIDATE` (`ID` )
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `CVM`.`CANDIDATE_CHANGES`
-- -----------------------------------------------------
CREATE  TABLE IF NOT EXISTS `CVM`.`CANDIDATE_CHANGES` (
  `ID` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT ,
  `FIELD` VARCHAR(100) NULL ,
  `CHANGED_VALUE` TEXT NULL ,
  PRIMARY KEY (`ID`) )
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `CVM`.`CANDIDATE_HISTORY_has_CANDIDATE_CHANGES`
-- -----------------------------------------------------
CREATE  TABLE IF NOT EXISTS `CVM`.`CANDIDATE_HISTORY_has_CANDIDATE_CHANGES` (
  `CANDIDATE_HISTORY_ID` INT(11) UNSIGNED NOT NULL ,
  `CANDIDATE_CHANGES_ID` INT(11) UNSIGNED NOT NULL ,
  PRIMARY KEY (`CANDIDATE_HISTORY_ID`, `CANDIDATE_CHANGES_ID`) ,
  INDEX `fk_CANDIDATE_HISTORY_has_CANDIDATE_CHANGES_CANDIDATE_CHANGES1` (`CANDIDATE_CHANGES_ID` ASC) ,
  CONSTRAINT `fk_CANDIDATE_HISTORY_has_CANDIDATE_CHANGES_CANDIDATE_HISTORY1`
    FOREIGN KEY (`CANDIDATE_HISTORY_ID` )
    REFERENCES `CVM`.`CANDIDATE_HISTORY` (`ID` )
    ON DELETE NO ACTION
    ON UPDATE NO ACTION,
  CONSTRAINT `fk_CANDIDATE_HISTORY_has_CANDIDATE_CHANGES_CANDIDATE_CHANGES1`
    FOREIGN KEY (`CANDIDATE_CHANGES_ID` )
    REFERENCES `CVM`.`CANDIDATE_CHANGES` (`ID` )
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;

В рабочей среде SQL все нормально, но с помощью maven-sql-plugin не удалось создать таблицу кандидат_history_has_candidate_changes. Все имена не более 64 символов. Пожалуйста помоги!

Ответы [ 3 ]

0 голосов
/ 13 декабря 2010

Посмотрите, есть ли остатки из таблиц.CREATE IF NOT EXIST ничего не делает, если таблицы уже существуют.(см. комментарии автора для получения дополнительной информации).

0 голосов
/ 13 декабря 2010
0 голосов
/ 13 декабря 2010

Попробуйте сузить возможные причины, начиная с простого create table.Попробуйте создать эту простую таблицу с кавычками и без кавычек, если плагин не обрабатывает их должным образом.

Убедитесь, что вы входите в систему как один и тот же пользователь в обоих случаях.

...