我卡住并且在正向工程我的模型时出错:(我不知道如何解决它:/我之前也遇到过类似的问题,它只是改变主键的位置然后它起作用了,但这次它没有一些原因 :/
Executing SQL script in server
ERROR: Error 1005: Can't create table 'werkzeuge.flansch' (errno: 150)
SQL Code:
-- -----------------------------------------------------
-- Table `werkzeuge`.`flansch`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `werkzeuge`.`flansch` (
`typ` VARCHAR(45) NOT NULL,
`bestellt` INT NULL,
`fertigung` INT NULL,
`lieferant` VARCHAR(50) NULL,
`lager` INT NULL,
`lagerplatz` VARCHAR(45) NULL,
`gewicht` DECIMAL NULL,
`e_k_preis` DECIMAL NULL,
`v_k_preis` DECIMAL NULL,
PRIMARY KEY (`typ`),
INDEX `fk_flansch_werkzeugführungen1_idx` (`typ` ASC),
CONSTRAINT `fk_flansch_werkzeugführungen1`
FOREIGN KEY (`typ`)
REFERENCES `werkzeuge`.`werkzeugführungen` (`flansch`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
SQL script execution finished: statements: 8 succeeded, 1 failed
Fetching back view definitions in final form.
Nothing to fetch
这是我的数据库表的创建语句
CREATE SCHEMA IF NOT EXISTS `werkzeuge` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci ;
USE `werkzeuge` ;
-- -----------------------------------------------------
-- Table `werkzeuge`.`maschinen`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `werkzeuge`.`maschinen` (
`werkzeugsatz` VARCHAR(45) NOT NULL,
`typ` VARCHAR(50) NOT NULL,
`maschinenkörper` VARCHAR(45) NOT NULL,
`elektrik` VARCHAR(45) NOT NULL,
`pneumatic` VARCHAR(45) NOT NULL,
`hydraulik` VARCHAR(45) NOT NULL,
`kühlvorrichtung` VARCHAR(45) NOT NULL,
`vorschubeinheit` VARCHAR(45) NOT NULL,
PRIMARY KEY (`werkzeugsatz`, `typ`, `maschinenkörper`, `elektrik`, `pneumatic`, `hydraulik`, `kühlvorrichtung`, `vorschubeinheit`))
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `werkzeuge`.`werkzeugsätze_gierth`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `werkzeuge`.`werkzeugsätze_gierth` (
`werkzeugführung` VARCHAR(45) NOT NULL,
`messerhalter` VARCHAR(45) NOT NULL,
`zentrierkronen` VARCHAR(45) NOT NULL,
`spanvorichtung` VARCHAR(45) NOT NULL,
`werkzeugsatz` VARCHAR(45) NOT NULL,
PRIMARY KEY (`werkzeugführung`, `messerhalter`, `zentrierkronen`, `spanvorichtung`),
INDEX `fk_werkzeugsätze_gierth_maschinen_idx` (`werkzeugsatz` ASC),
CONSTRAINT `fk_werkzeugsätze_gierth_maschinen`
FOREIGN KEY (`werkzeugsatz`)
REFERENCES `werkzeuge`.`maschinen` (`werkzeugsatz`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `werkzeuge`.`werkzeugführungen`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `werkzeuge`.`werkzeugführungen` (
`oberteilführung` VARCHAR(45) NOT NULL,
`flansch` VARCHAR(45) NOT NULL,
`passfeder` VARCHAR(45) NOT NULL,
`flansch_mit_führung` VARCHAR(45) NOT NULL,
`länge` INT NULL,
`wf_komplett` VARCHAR(45) NULL,
`jahresbedarf` VARCHAR(45) NULL,
`typ` VARCHAR(45) NOT NULL,
PRIMARY KEY (`oberteilführung`, `flansch`, `passfeder`, `flansch_mit_führung`),
INDEX `fk_werkzeugführungen_werkzeugsätze_gierth1_idx` (`typ` ASC),
CONSTRAINT `fk_werkzeugführungen_werkzeugsätze_gierth1`
FOREIGN KEY (`typ`)
REFERENCES `werkzeuge`.`werkzeugsätze_gierth` (`werkzeugführung`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `werkzeuge`.`flansch`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `werkzeuge`.`flansch` (
`typ` VARCHAR(45) NOT NULL,
`bestellt` INT NULL,
`fertigung` INT NULL,
`lieferant` VARCHAR(50) NULL,
`lager` INT NULL,
`lagerplatz` VARCHAR(45) NULL,
`gewicht` DECIMAL NULL,
`e_k_preis` DECIMAL NULL,
`v_k_preis` DECIMAL NULL,
PRIMARY KEY (`typ`),
INDEX `fk_flansch_werkzeugführungen1_idx` (`typ` ASC),
CONSTRAINT `fk_flansch_werkzeugführungen1`
FOREIGN KEY (`typ`)
REFERENCES `werkzeuge`.`werkzeugführungen` (`flansch`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `werkzeuge`.`oberteilführung`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `werkzeuge`.`oberteilführung` (
`typ` VARCHAR(45) NOT NULL,
`bestellt` INT NULL,
`fertigung` VARCHAR(45) NULL,
`lieferant` VARCHAR(45) NULL,
`lager` VARCHAR(45) NULL,
`lagerplatz` VARCHAR(45) NULL,
`gewicht` VARCHAR(45) NULL,
`e_k_preis` VARCHAR(45) NULL,
`v_k_preis` VARCHAR(45) NULL,
PRIMARY KEY (`typ`),
INDEX `fk_oberteilführung_werkzeugführungen1_idx` (`typ` ASC),
CONSTRAINT `fk_oberteilführung_werkzeugführungen1`
FOREIGN KEY (`typ`)
REFERENCES `werkzeuge`.`werkzeugführungen` (`oberteilführung`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `werkzeuge`.`flansch_mit_führung`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `werkzeuge`.`flansch_mit_führung` (
`typ` VARCHAR(45) NOT NULL,
`bestellt` INT NULL,
`fertigung` VARCHAR(45) NULL,
`lieferant` VARCHAR(45) NULL,
`lager` VARCHAR(45) NULL,
`lagerplatz` VARCHAR(45) NULL,
`gewicht` VARCHAR(45) NULL,
`e_k_preis` VARCHAR(45) NULL,
`v_k_preis` VARCHAR(45) NULL,
INDEX `fk_flansch_mit_führung_werkzeugführungen1_idx` (`typ` ASC),
PRIMARY KEY (`typ`),
CONSTRAINT `fk_flansch_mit_führung_werkzeugführungen1`
FOREIGN KEY (`typ`)
REFERENCES `werkzeuge`.`werkzeugführungen` (`flansch_mit_führung`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `werkzeuge`.`passfeder`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `werkzeuge`.`passfeder` (
`typ` VARCHAR(45) NOT NULL,
`bestellt` INT NULL,
`fertigung` VARCHAR(45) NULL,
`lieferant` VARCHAR(45) NULL,
`lager` VARCHAR(45) NULL,
`lagerplatz` VARCHAR(45) NULL,
`gewicht` VARCHAR(45) NULL,
`e_k_preis` VARCHAR(45) NULL,
`v_k_preis` VARCHAR(45) NULL,
PRIMARY KEY (`typ`),
INDEX `fk_passfeder_werkzeugführungen1_idx` (`typ` ASC),
CONSTRAINT `fk_passfeder_werkzeugführungen1`
FOREIGN KEY (`typ`)
REFERENCES `werkzeuge`.`werkzeugführungen` (`passfeder`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
SET SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;