开发者

Can not create table, errno: 150

What is bad in these queries for creating tables?

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` )
    REFERE开发者_开发技巧NCES `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;

In SQL workbench its all ok, but using maven-sql-plugin it failed to create table candidate_history_has_candidate_changes. All names are less than 64 symbols. Please, help!


Try to narrow down the possible causes, starting with a simple create table. Try creating this simple table with and without backtick quotes in case the plugin isn't handling them properly.

Check you are logging in as the same user in both cases.


See if there are any leftovers from the tables. CREATE IF NOT EXIST does nothing if the tables already exist. (see asker's comments for more info).


Lots of possible answers here: http://verysimple.com/2006/10/22/mysql-error-number-1005-cant-create-table-mydbsql-328_45frm-errno-150/

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜