2016-11-08 12 views
0

私はMySQLに慣れていますが、MySQL Workbenchを使用して新しいスキーマでいくつかのテーブルを作成しようとしました。何らかの理由でMySQL Workbenchが自動生成したSQLにCREATE TABLEが存在しない場合はmydbtimestamps .....問題があると思われます。関連性の最も近いものは、WorkbenchのスキーマですGUIエディタの右側に、タイムスタンプと呼ばれるデフォルトのテンプレートを持つモデリングアクションというペインがあります。私は単純なテストプロジェクトでこれを使用しませんでした。MySQL Workbench Synchronization:CREATE TABLEでエラーが発生しました。 'mydb`.`timestamps`(

私はMySQL 5.7.16 Win64を使用しています。 MySQL Workbench:6.3 .7(ビルド1199CE)

null値をnull以外のフィールドに入れることとは関係がありますが、テーブルの一部でない場合は、テーブル/フィールドが最初にどのように作成されていますか?

誰でも正しい方向に私を導くことができますか?私は初心者としてアクセスから来て、このシステムは非常に異なっています。私はスキーマデザインを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

一つのテーブルを毎回作成してみてください。

しかし、私はこの問題は、あなたのこのexamples

があるべきdefault

チェックしてNULLを使用している信じて:

CREATE TABLE IF NOT EXISTS `mydb`.`timestamps` (
     `create_time` DEFAULT CURRENT_TIMESTAMP, 
     `update_time`) 
    ENGINE = InnoDB 
    DEFAULT CHARACTER SET = utf8; 
関連する問題