我用mysql workbench画了一个简单的EER Model,三个表班级表:班级id、班级名
社团表:社团id、社团名
学生表:学生id、学生名、所属班级id(外键),所属社团id(外键)但是它导出的.sql文件再导入mysql时发现有语法错误。
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';CREATE SCHEMA IF NOT EXISTS `mydb` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci ;
USE `mydb` ;-- -----------------------------------------------------
-- Table `mydb`.`class`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mydb`.`class` (
`idclass` INT NOT NULL AUTO_INCREMENT ,
`name` VARCHAR(45) NULL ,
PRIMARY KEY (`idclass`) )
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `mydb`.`association`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mydb`.`association` (
`idassociation` INT NOT NULL AUTO_INCREMENT ,
`name` VARCHAR(45) NULL ,
PRIMARY KEY (`idassociation`) )
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `mydb`.`student`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mydb`.`student` (
`idstudent` INT NOT NULL AUTO_INCREMENT ,
`name` VARCHAR(45) NULL ,
`idclass` INT NULL ,
`idassociation` INT NULL ,
PRIMARY KEY (`idstudent`) ,
CONSTRAINT `idclass`
FOREIGN KEY ()
REFERENCES `mydb`.`class` ()
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `idassociation`
FOREIGN KEY ()
REFERENCES `mydb`.`association` ()
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;USE `mydb` ;
SET SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;
不知道问题处在哪?
社团表:社团id、社团名
学生表:学生id、学生名、所属班级id(外键),所属社团id(外键)但是它导出的.sql文件再导入mysql时发现有语法错误。
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';CREATE SCHEMA IF NOT EXISTS `mydb` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci ;
USE `mydb` ;-- -----------------------------------------------------
-- Table `mydb`.`class`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mydb`.`class` (
`idclass` INT NOT NULL AUTO_INCREMENT ,
`name` VARCHAR(45) NULL ,
PRIMARY KEY (`idclass`) )
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `mydb`.`association`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mydb`.`association` (
`idassociation` INT NOT NULL AUTO_INCREMENT ,
`name` VARCHAR(45) NULL ,
PRIMARY KEY (`idassociation`) )
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `mydb`.`student`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mydb`.`student` (
`idstudent` INT NOT NULL AUTO_INCREMENT ,
`name` VARCHAR(45) NULL ,
`idclass` INT NULL ,
`idassociation` INT NULL ,
PRIMARY KEY (`idstudent`) ,
CONSTRAINT `idclass`
FOREIGN KEY ()
REFERENCES `mydb`.`class` ()
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `idassociation`
FOREIGN KEY ()
REFERENCES `mydb`.`association` ()
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;USE `mydb` ;
SET SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;
不知道问题处在哪?
提示什么,将语句在MYSQL命令行下运行
我用菜单中的“打开SQL脚本”,出现的错误在38行的右括号处。如果用命令行,它提示三个错误unknown command '\U',以及\S和\D
-> `idstudent` INT NOT NULL AUTO_INCREMENT ,
-> `name` VARCHAR(45) NULL ,
-> `idclass` INT NULL ,
-> `idassociation` INT NULL ,
-> PRIMARY KEY (`idstudent`) ,
-> CONSTRAINT `idclass`
-> FOREIGN KEY (idclass)
-> REFERENCES `mydb`.`class` (idclass)
-> ON DELETE NO ACTION
-> ON UPDATE NO ACTION,
-> CONSTRAINT `idassociation`
-> FOREIGN KEY (idassociation)
-> REFERENCES `mydb`.`association` (idassociation)
-> ON DELETE NO ACTION
-> ON UPDATE NO ACTION)
-> ENGINE = InnoDB;
Query OK, 0 rows affected (0.04 sec)mysql>