MySQL赢得';我不能创建我的数据库

MySQL赢得';我不能创建我的数据库,mysql,database,database-design,eer-model,Mysql,Database,Database Design,Eer Model,我正在EER模型中使用MySQL Wordbench对数据库进行建模,如下所示: 因此,在对数据库建模后,我导出到SQL脚本并尝试运行它,但它只创建了三个表: 为什么会这样? 它不应该创建所有表 这是我导出时生成的脚本: SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0; SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0; SET

我正在EER模型中使用MySQL Wordbench对数据库进行建模,如下所示:

因此,在对数据库建模后,我导出到SQL脚本并尝试运行它,但它只创建了三个表:

为什么会这样? 它不应该创建所有表

这是我导出时生成的脚本:

    SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL';

CREATE SCHEMA IF NOT EXISTS `brainset` DEFAULT CHARACTER SET latin1 COLLATE latin1_general_ci ;
USE `brainset` ;

-- -----------------------------------------------------
-- Table `brainset`.`departamento`
-- -----------------------------------------------------
CREATE  TABLE IF NOT EXISTS `brainset`.`departamento` (
  `ID` TINYINT UNSIGNED NOT NULL ,
  `departamento` VARCHAR(50) NOT NULL ,
  PRIMARY KEY (`ID`) ,
  UNIQUE INDEX `departamento_UNIQUE` (`departamento` ASC) )
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `brainset`.`documento_escopo`
-- -----------------------------------------------------
CREATE  TABLE IF NOT EXISTS `brainset`.`documento_escopo` (
  `ID` TINYINT UNSIGNED NOT NULL ,
  `escopo` CHAR(7) NOT NULL ,
  PRIMARY KEY (`ID`) ,
  UNIQUE INDEX `escopo_UNIQUE` (`escopo` ASC) )
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `brainset`.`procedimento_tipo`
-- -----------------------------------------------------
CREATE  TABLE IF NOT EXISTS `brainset`.`procedimento_tipo` (
  `ID` TINYINT UNSIGNED NOT NULL ,
  `tipo` VARCHAR(50) NOT NULL ,
  PRIMARY KEY (`ID`) ,
  UNIQUE INDEX `tipo_UNIQUE` (`tipo` ASC) )
ENGINE = InnoDB
COMMENT = '     ';


-- -----------------------------------------------------
-- Table `brainset`.`procedimento`
-- -----------------------------------------------------
CREATE  TABLE IF NOT EXISTS `brainset`.`procedimento` (
  `ID` SMALLINT UNSIGNED NOT NULL ,
  `nome` VARCHAR(100) NOT NULL ,
  `descricao` VARCHAR(1024) NOT NULL ,
  `id_tipo` TINYINT UNSIGNED NOT NULL ,
  `id_departamento` TINYINT UNSIGNED NOT NULL ,
  `id_documento_complementar` INT UNSIGNED NOT NULL ,
  PRIMARY KEY (`ID`) ,
  INDEX `fk_procedimento-procedimento_tipo` (`id_tipo` ASC, `id_departamento` ASC) ,
  INDEX `fk_procedimento-departamento` (`id_departamento` ASC) ,
  CONSTRAINT `fk_procedimento-procedimento_tipo`
    FOREIGN KEY (`id_tipo` , `id_departamento` )
    REFERENCES `brainset`.`procedimento_tipo` (`ID` , `ID` )
    ON DELETE NO ACTION
    ON UPDATE NO ACTION,
  CONSTRAINT `fk_procedimento-departamento`
    FOREIGN KEY (`id_departamento` )
    REFERENCES `brainset`.`departamento` (`ID` )
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `brainset`.`usuario`
-- -----------------------------------------------------
CREATE  TABLE IF NOT EXISTS `brainset`.`usuario` (
  `ID` INT UNSIGNED NOT NULL AUTO_INCREMENT ,
  `nome` VARCHAR(100) NOT NULL ,
  `foto` VARCHAR(200) NULL ,
  `email` VARCHAR(45) NOT NULL ,
  `senha` VARCHAR(45) NOT NULL ,
  PRIMARY KEY (`ID`) )
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `brainset`.`documento`
-- -----------------------------------------------------
CREATE  TABLE IF NOT EXISTS `brainset`.`documento` (
  `ID` INT UNSIGNED NOT NULL AUTO_INCREMENT ,
  `id_procedimento` SMALLINT UNSIGNED NOT NULL ,
  `data` DATETIME NOT NULL ,
  `revisao` TINYINT NOT NULL ,
  `id_escopo` TINYINT UNSIGNED NOT NULL ,
  `id_documento_complementar` INT UNSIGNED NULL ,
  `id_usuario` INT UNSIGNED NOT NULL ,
  PRIMARY KEY (`ID`) ,
  INDEX `fk_documento-documento_escopo` (`id_escopo` ASC) ,
  INDEX `fk_documento-procedimento` (`id_procedimento` ASC) ,
  INDEX `fk_documento-documento` (`id_documento_complementar` ASC) ,
  INDEX `fk_documento-usuario` (`id_usuario` ASC) ,
  CONSTRAINT `fk_documento-documento_escopo`
    FOREIGN KEY (`id_escopo` )
    REFERENCES `brainset`.`documento_escopo` (`ID` )
    ON DELETE NO ACTION
    ON UPDATE NO ACTION,
  CONSTRAINT `fk_documento-procedimento`
    FOREIGN KEY (`id_procedimento` )
    REFERENCES `brainset`.`procedimento` (`ID` )
    ON DELETE NO ACTION
    ON UPDATE NO ACTION,
  CONSTRAINT `fk_documento-documento`
    FOREIGN KEY (`id_documento_complementar` )
    REFERENCES `brainset`.`documento` (`ID` )
    ON DELETE NO ACTION
    ON UPDATE NO ACTION,
  CONSTRAINT `fk_documento-usuario`
    FOREIGN KEY (`id_usuario` )
    REFERENCES `brainset`.`usuario` (`ID` )
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `brainset`.`questao`
-- -----------------------------------------------------
CREATE  TABLE IF NOT EXISTS `brainset`.`questao` (
  `ID` INT UNSIGNED NOT NULL ,
  `questao` VARCHAR(1024) NOT NULL ,
  `descricao` VARCHAR(1024) NULL ,
  `observacao` VARCHAR(1024) NULL ,
  `data` DATETIME NOT NULL ,
  PRIMARY KEY (`ID`) )
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `brainset`.`questao_tipo`
-- -----------------------------------------------------
CREATE  TABLE IF NOT EXISTS `brainset`.`questao_tipo` (
  `ID` TINYINT UNSIGNED NOT NULL ,
  `nome` VARCHAR(45) NOT NULL ,
  PRIMARY KEY (`ID`) )
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `brainset`.`questao_campo`
-- -----------------------------------------------------
CREATE  TABLE IF NOT EXISTS `brainset`.`questao_campo` (
  `ID` INT UNSIGNED NOT NULL ,
  `id_questao` INT NOT NULL ,
  `id_questao_tipo` TINYINT NOT NULL ,
  `descricao` VARCHAR(1024) NULL ,
  PRIMARY KEY (`ID`) ,
  INDEX `fk_questao_campo-questao` (`id_questao` ASC) ,
  INDEX `fk_questao_campo-questao-tipo` (`id_questao_tipo` ASC) ,
  CONSTRAINT `fk_questao_campo-questao`
    FOREIGN KEY (`id_questao` )
    REFERENCES `brainset`.`questao` (`ID` )
    ON DELETE CASCADE
    ON UPDATE CASCADE,
  CONSTRAINT `fk_questao_campo-questao-tipo`
    FOREIGN KEY (`id_questao_tipo` )
    REFERENCES `brainset`.`questao_tipo` (`ID` )
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `brainset`.`questao_escolha`
-- -----------------------------------------------------
CREATE  TABLE IF NOT EXISTS `brainset`.`questao_escolha` (
  `ID` INT UNSIGNED NOT NULL ,
  `id_questao_campo` INT NOT NULL ,
  `nome` VARCHAR(64) NOT NULL ,
  `valor` VARCHAR(64) NOT NULL ,
  PRIMARY KEY (`ID`) ,
  INDEX `fk_questao_escolha-questao_campo` (`id_questao_campo` ASC) ,
  CONSTRAINT `fk_questao_escolha-questao_campo`
    FOREIGN KEY (`id_questao_campo` )
    REFERENCES `brainset`.`questao_campo` (`ID` )
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `brainset`.`questao_resposta`
-- -----------------------------------------------------
CREATE  TABLE IF NOT EXISTS `brainset`.`questao_resposta` (
  `ID` INT UNSIGNED NOT NULL ,
  `id_questao` INT NOT NULL ,
  `resposta` VARCHAR(1024) NOT NULL ,
  `data` DATETIME NOT NULL ,
  PRIMARY KEY (`ID`) )
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `brainset`.`questao_consulta`
-- -----------------------------------------------------
CREATE  TABLE IF NOT EXISTS `brainset`.`questao_consulta` (
  `ID` INT UNSIGNED NOT NULL ,
  `id_usuario` INT NOT NULL ,
  `id_questao` INT NOT NULL ,
  `id_questao_resposta` INT NOT NULL ,
  `data` TIMESTAMP NOT NULL ,
  PRIMARY KEY (`ID`) ,
  INDEX `fk_questao_consulta-usuario` (`id_usuario` ASC) ,
  INDEX `fk_questao_consulta-questao` (`id_questao` ASC) ,
  INDEX `fk_questao_consulta-questao_resposta` (`id_questao_resposta` ASC) ,
  CONSTRAINT `fk_questao_consulta-usuario`
    FOREIGN KEY (`id_usuario` )
    REFERENCES `brainset`.`usuario` (`ID` )
    ON DELETE NO ACTION
    ON UPDATE NO ACTION,
  CONSTRAINT `fk_questao_consulta-questao`
    FOREIGN KEY (`id_questao` )
    REFERENCES `brainset`.`questao` (`ID` )
    ON DELETE NO ACTION
    ON UPDATE NO ACTION,
  CONSTRAINT `fk_questao_consulta-questao_resposta`
    FOREIGN KEY (`id_questao_resposta` )
    REFERENCES `brainset`.`questao_resposta` (`ID` )
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB
COMMENT = '     ';


-- -----------------------------------------------------
-- Table `brainset`.`departamento_equipe`
-- -----------------------------------------------------
CREATE  TABLE IF NOT EXISTS `brainset`.`departamento_equipe` (
  `ID` INT UNSIGNED NOT NULL ,
  `id_departamento` TINYINT UNSIGNED NOT NULL ,
  `id_usuario` INT UNSIGNED NOT NULL ,
  PRIMARY KEY (`ID`) ,
  INDEX `fk_departamento_equipe-departamento` (`id_departamento` ASC) ,
  INDEX `fk_departamento_equipe-usuario` (`id_usuario` ASC) ,
  CONSTRAINT `fk_departamento_equipe-departamento`
    FOREIGN KEY (`id_departamento` )
    REFERENCES `brainset`.`departamento` (`ID` )
    ON DELETE CASCADE
    ON UPDATE CASCADE,
  CONSTRAINT `fk_departamento_equipe-usuario`
    FOREIGN KEY (`id_usuario` )
    REFERENCES `brainset`.`usuario` (`ID` )
    ON DELETE CASCADE
    ON UPDATE CASCADE)
ENGINE = InnoDB;



SET SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;

谢谢。

以防有人无意中发现这一点;无法创建与尚未创建的表具有关系的表

当MySQL创建一个关系时,它会将您正在创建关系的表链接到您正在引用的表,如果引用表不存在,MySQL将不会对此感到高兴


因此,在创建大量相互引用的表时,请确保在引用其他表之前创建其他表引用的任何表。

以防有人无意中发现这一点;无法创建与尚未创建的表具有关系的表

当MySQL创建一个关系时,它会将您正在创建关系的表链接到您正在引用的表,如果引用表不存在,MySQL将不会对此感到高兴


因此,在创建大量相互引用的表时,请确保在引用其他表之前创建其他表。

执行代码后,mysql是否会输出任何内容?@Stu-nope,它只是说如果查询成功,可以粘贴sql,或者它是敏感数据?@Stu I Dow,是一个简单的系统,没有问题=]看起来您在创建引用表之前定义了一个关系,尝试更改
create tables
语句的顺序,以便在引用它的表之前创建任何被另一个引用的表,如果这样做有意义的话?-特别是表
departmento
需要在
procedmento_tipo
执行代码后mysql会输出什么吗?@Stu-nope,它只是说成功完成查询很奇怪,你能粘贴sql吗,还是敏感数据?@Stu-I现在是一个简单的系统,没问题=]看起来您在创建引用表之前定义了一个关系,尝试更改
create tables
语句的顺序,以便在引用它的表之前创建另一个引用的表,如果这样做有意义的话?-特别是表
departmento
需要在
procedimento_tipo
+1之前创建,如果存在循环引用(或者只是不关心表的创建顺序),请先创建所有表,然后使用
ALTER table。。。添加外键…
之后。对于拥有大量表格的人,这是一个很好的建议@Branko+1,如果存在循环引用(或者只是不关心表的创建顺序),则首先创建所有表,然后使用
altertable。。。添加外键…
之后。对于拥有大量表格的人,这是一个很好的建议@Branko!