首页 > 解决方案 > mysql导入模型转发工程师错误

问题描述

我在 MySQL Workbench 中创建了一个包含 3 个表的小型数据库。创建表后,我在其中插入了一些数据,它工作正常。现在我有另一台电脑。我从第一台电脑将模型导出为 mwb 文件,我想将该 mwb 文件导入我的第二台电脑。这是我在将模型(正向工程)导入我的第二台电脑时遇到的错误。我不明白为什么在 MySQL Workbench 中创建的模型在另一台电脑的工作台中不起作用。有人可以帮忙吗?谢谢你。我想导入的 mwb 文件代码

我在正向工程时遇到的错误

编辑:这是现在给出错误的脚本:

-- MySQL Workbench Forward Engineering
    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='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';
    -- -----------------------------------------------------
    -- Schema mydb
    -- -----------------------------------------------------
    -- -----------------------------------------------------
    -- Schema karakoyd
    -- -----------------------------------------------------

    -- -----------------------------------------------------
    -- Schema karakoyd
    -- -----------------------------------------------------
    CREATE SCHEMA IF NOT EXISTS `karakoyd` DEFAULT CHARACTER SET utf8 COLLATE utf8_turkish_ci ;
    USE `karakoyd` ;

    -- -----------------------------------------------------
    -- Table `karakoyd`.`emp`
    -- -----------------------------------------------------
    CREATE TABLE IF NOT EXISTS `karakoyd`.`emp` (
      `idemp`  NOT NULL,
      `name` VARCHAR(45) NOT NULL,
      `email` VARCHAR(255) NOT NULL,
      `pass` VARCHAR(255) NOT NULL,
      `salt` VARCHAR(19) NOT NULL,
      `log` VARCHAR(45) NOT NULL,
      `rütbe` VARCHAR(45) NOT NULL,
      PRIMARY KEY (`idemp`),
      UNIQUE INDEX `idemployee_UNIQUE` (`idemp` ASC) VISIBLE)
    ENGINE = InnoDB
    AUTO_INCREMENT = 19
    DEFAULT CHARACTER SET = utf8
    COLLATE = utf8_turkish_ci;

标签: mysqlsqlimport

解决方案


据我所知,在您的图像中,如果不定义列的类型,您就无法在表中创建列。

例如,在您的表中EMP,您正在像这样创建它:

idemp not null

它应该是这样的(例如):

idemp int not null

这是一个小演示

还有一个与您的桌子有关的新演示

这就是您的 TABLE 代码的样子。

CREATE TABLE IF NOT EXISTS `karakoyd`.`emp` (
      `idemp` int NOT NULL,   --the change was made here(column's data type was missing)
      `name` VARCHAR(45) NOT NULL,
      `email` VARCHAR(255) NOT NULL,
      `pass` VARCHAR(255) NOT NULL,
      `salt` VARCHAR(19) NOT NULL,
      `log` VARCHAR(45) NOT NULL,
      `rütbe` VARCHAR(45) NOT NULL,
      PRIMARY KEY (`idemp`),
      UNIQUE INDEX `idemployee_UNIQUE` (`idemp` ASC) VISIBLE)
    ENGINE = InnoDB
    AUTO_INCREMENT = 19
    DEFAULT CHARACTER SET = utf8
    COLLATE = utf8_turkish_ci;

推荐阅读