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/
精彩评论