2016-11-08 94 views
0

我是新到MySQL我试图创建使用MySQL工作台新模式几桌,我试图以“同步模型。数据库”,但它有错误。对于MySQL工作台自动生成某种原因SQL包括CREATE TABLE IF NOT EXISTS mydbtimestamps .....这似乎是这个问题。我能找到相关的最接近的事是在工作台的架构GUI编辑器它右侧有一个窗格叫做Modeling Actions,它有一个名为timestamps的默认模板,我没有用它在我的简单测试项目中。 .7(build 1199CE)MySQL工作台同步:错误CREATE TABLE IF NOT EXISTS`mydb`.`timestamps`(

我知道那是有事情做一个空值被放进一个非空场,但怎么是,表/场被首先建立,如果它不是我的表的一部分吗?

任何人都可以请引导我正确的方向?我来自Access作为新手,这个系统是非常不同的。我无法让模式设计与MySQL同步。

***************************************************************************** 
* MySQL Workbench auto-generated SQL - it is being made during Synchronize... 
***************************************************************************** 

    -- MySQL Workbench Synchronization 
    -- Generated: 2016-11-08 06:30 
    -- Model: New Model 
    -- Version: 1.0 
    -- Project: Name of the project 
    -- Author: Turtle 

    SET @[email protected]@UNIQUE_CHECKS, UNIQUE_CHECKS=0; 
    SET @[email protected]@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0; 
    SET @[email protected]@SQL_MODE, SQL_MODE='TRADITIONAL,ALLOW_INVALID_DATES'; 

    CREATE TABLE IF NOT EXISTS `mydb`.`timestamps` (
     `create_time` NULL DEFAULT CURRENT_TIMESTAMP, 
     `update_time` NULL) 
    ENGINE = InnoDB 
    DEFAULT CHARACTER SET = utf8; 

    CREATE TABLE IF NOT EXISTS `mydb`.`tblWorkLog` (
     `UserName` VARCHAR(50) NOT NULL, 
     `tblUsers_UserName` VARCHAR(50) NOT NULL, 
     PRIMARY KEY (`UserName`), 
     INDEX `fk_tblWorkLog_tblUsers_idx` (`tblUsers_UserName` ASC), 
     CONSTRAINT `fk_tblWorkLog_tblUsers` 
     FOREIGN KEY (`tblUsers_UserName`) 
     REFERENCES `mydb`.`tblUsers` (`UserName`) 
     ON DELETE NO ACTION 
     ON UPDATE NO ACTION) 
    ENGINE = InnoDB 
    DEFAULT CHARACTER SET = utf8; 

    CREATE TABLE IF NOT EXISTS `mydb`.`tblUsers` (
     `UserName` VARCHAR(50) NOT NULL, 
     `fName` VARCHAR(50) NULL DEFAULT NULL, 
     `mName` VARCHAR(50) NULL DEFAULT NULL, 
     `lName` VARCHAR(50) NULL DEFAULT NULL, 
     `tblUserscol` VARCHAR(45) NULL DEFAULT NULL, 
     `email` VARCHAR(255) NULL DEFAULT NULL, 
     `tblWorkLog_UserName` INT(11) NOT NULL, 
     PRIMARY KEY (`UserName`)) 
    ENGINE = InnoDB 
    DEFAULT CHARACTER SET = utf8; 

    CREATE TABLE IF NOT EXISTS `mydb`.`tblJobCodes` (
     `JobCode` VARCHAR(50) NOT NULL, 
     `ShortName` VARCHAR(100) NULL DEFAULT NULL, 
     `LongName` VARCHAR(255) NULL DEFAULT NULL, 
     `Description` VARCHAR(4000) NULL DEFAULT NULL, 
     PRIMARY KEY (`JobCode`)) 
    ENGINE = InnoDB 
    DEFAULT CHARACTER SET = utf8; 

    CREATE TABLE IF NOT EXISTS `mydb`.`tblRoles` (
     `RoleID` VARCHAR(25) NOT NULL, 
     `Description` VARCHAR(255) NULL DEFAULT NULL, 
     PRIMARY KEY (`RoleID`)) 
    ENGINE = InnoDB 
    DEFAULT CHARACTER SET = utf8; 


    SET [email protected]_SQL_MODE; 
    SET [email protected]_FOREIGN_KEY_CHECKS; 
    SET [email protected]_UNIQUE_CHECKS; 

-

***************************************************************************** 
* Error message from MySQL Workbench 
***************************************************************************** 

    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 'NULL DEFAULT CURRENT_TIMESTAMP, 
     `update_time` NULL) 
    ENGINE = InnoDB 
    DEFAULT C' at line 2 
    SQL Code: 
      CREATE TABLE IF NOT EXISTS `mydb`.`timestamps` (
       `create_time` NULL DEFAULT CURRENT_TIMESTAMP, 
       `update_time` NULL) 
      ENGINE = InnoDB 
      DEFAULT CHARACTER SET = utf8 
    SQL script execution finished: statements: 3 succeeded, 1 failed 
    Fetching back view definitions in final form. 
    Nothing to fetch 

回答

0

尝试创建每次一个表。

但我相信你的使用NULLdefault

入住这examples

应该是问题是:

CREATE TABLE IF NOT EXISTS `mydb`.`timestamps` (
     `create_time` DEFAULT CURRENT_TIMESTAMP, 
     `update_time`) 
    ENGINE = InnoDB 
    DEFAULT CHARACTER SET = utf8;