【问题标题】:forward engineer with mysql workbench cannot create the schema使用 mysql 工作台的正向工程师无法创建架构
【发布时间】:2015-06-03 09:54:29
【问题描述】:
-- 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='TRADITIONAL,ALLOW_INVALID_DATES';

-- -----------------------------------------------------
-- Schema motivian
-- -----------------------------------------------------

-- -----------------------------------------------------
-- Schema motivian
-- -----------------------------------------------------
CREATE SCHEMA IF NOT EXISTS `motivian` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci ;
USE `motivian` ;

-- -----------------------------------------------------
-- Table `motivian`.`user`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `motivian`.`user` ;

CREATE TABLE IF NOT EXISTS `motivian`.`user` (
  `user_id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
  `username` VARCHAR(100) NOT NULL,
  `email` VARCHAR(100) NULL,
  `password` VARCHAR(100) NOT NULL,
  UNIQUE INDEX `username_UNIQUE` (`username` ASC),
  PRIMARY KEY (`user_id`));


-- -----------------------------------------------------
-- Table `motivian`.`calculation`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `motivian`.`calculation` ;

CREATE TABLE IF NOT EXISTS `motivian`.`calculation` (
  `category_id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
  `calc` VARCHAR(100) NOT NULL,
  `user_id` INT NULL,
  `date_created` TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`category_id`),
  CONSTRAINT `user_id`
    FOREIGN KEY ()
    REFERENCES `motivian`.`user` ()
    ON DELETE NO ACTION
    ON UPDATE NO ACTION);


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

这是使用 mysql 工作台自动生成的,但无法应用约束。我试过这样:

约束user_id 外键 (user_id) REFERENCESmotivian.user(user_id) 删除无操作 更新时无操作);

但也不起作用..... 这是错误:

Executing SQL script in server
ERROR: Error 1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')
    REFERENCES `motivian`.`user` ()
    ON DELETE NO ACTION
    ON UPDATE NO A' at line 8
SQL Code:
        CREATE TABLE IF NOT EXISTS `motivian`.`calculation` (
          `category_id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
          `calc` VARCHAR(100) NOT NULL,
          `user_id` INT NULL,
          `date_created` TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
          PRIMARY KEY (`category_id`),
          CONSTRAINT `user_id`
            FOREIGN KEY ()
            REFERENCES `motivian`.`user` ()
            ON DELETE NO ACTION
            ON UPDATE NO ACTION)

SQL script execution finished: statements: 8 succeeded, 1 failed

Fetching back view definitions in final form.
Nothing to fetch

【问题讨论】:

    标签: mysql-workbench


    【解决方案1】:

    您的 FK 定义不完整。 Youd 没有指定任何列。在表编辑器中选择您的外键并在列表中指定列对:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-12-19
      • 2015-08-05
      • 1970-01-01
      • 2017-08-20
      • 2019-06-03
      • 2019-03-08
      • 2012-03-06
      • 2017-06-06
      相关资源
      最近更新 更多