首页 > 解决方案 > MySQL工作台数据导入,外键错误

问题描述

我在 mySQL 工作台 8.0CE 中工作,我创建了两个表,一个用于人员,另一个用于人员方向,我正在尝试导出数据,但它会抛出错误

ERROR 1064 (42000) at line 67: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '
  CONSTRAINT `fk_PersonaDireccion`
    FOREIGN KEY (`idPersona`)
    REFERENCES' at line 8

Operation failed with exitcode 1

这是sql代码

    CREATE TABLE IF NOT EXISTS `dinSchema`.`Personas` (
  `nombre` VARCHAR(20) NOT NULL,
  `apellidoP` VARCHAR(20) NOT NULL,
  `apellidoM` VARCHAR(20) NOT NULL,
  `foto` MEDIUMBLOB NULL,
  `fechaCaptura` TIMESTAMP(6) NOT NULL,
  `escolaridad` VARCHAR(25) NOT NULL,
  `carrera` VARCHAR(25) NULL,
  `telefono` VARCHAR(10) NULL,
  `correo` VARCHAR(50) NOT NULL,
  `sexo` VARCHAR(10) NOT NULL,
  `rfc` VARCHAR(13) NOT NULL,
  `curp` VARCHAR(18) NOT NULL,
  `observaciones` MEDIUMTEXT NULL,
  `idPersonas` INT NOT NULL,
  PRIMARY KEY (`idPersonas`))
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `dinSchema`.`direccion`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `dinSchema`.`direccion` ;

CREATE TABLE IF NOT EXISTS `dinSchema`.`direccion` (
  `pais` VARCHAR(6) NOT NULL DEFAULT 'México',
  `estado` VARCHAR(20) NOT NULL,
  `ciudad` VARCHAR(25) NOT NULL,
  `direccion` VARCHAR(150) NOT NULL,
  `cp` INT(8) NOT NULL,
  `idPersona` INT NOT NULL,
  INDEX `fk_PersonaDireccion_idx` (`idPersona` ASC) VISIBLE,
  CONSTRAINT `fk_PersonaDireccion`
    FOREIGN KEY (`idPersona`)
    REFERENCES `dinSchema`.`Personas` (`idPersonas`)
    ON DELETE RESTRICT
    ON UPDATE CASCADE)
ENGINE = InnoDB;

接下来我附加 EER 图 img EER图

注意:“Personas” id 字段最后是,因为我删除了外键连接。

标签: mysqlmysql-workbench

解决方案


我以某种方式修复了它,未选中模型选项中的用户默认全局设置,并且

INDEX `fk_PersonaDireccion_idx` (`idPersona` ASC) VISIBLE

消失了,现在“方向”表变成了这样

CREATE TABLE IF NOT EXISTS `dinSchema`.`direccion` (
  `pais` VARCHAR(6) NOT NULL DEFAULT 'México',
  `estado` VARCHAR(20) NOT NULL,
  `ciudad` VARCHAR(25) NOT NULL,
  `direccion` VARCHAR(150) NOT NULL,
  `cp` INT(8) NOT NULL,
  `idPersona` INT NOT NULL,
  CONSTRAINT `fk_PersonaDireccion`
    FOREIGN KEY (`idPersona`)
    REFERENCES `dinSchema`.`Personas` (`idPersonas`)
    ON DELETE RESTRICT
    ON UPDATE CASCADE)
ENGINE = InnoDB;

推荐阅读