私はMySQLに慣れていますが、MySQL Workbenchを使用して新しいスキーマでいくつかのテーブルを作成しようとしました。何らかの理由でMySQL Workbenchが自動生成したSQLにCREATE TABLEが存在しない場合はmydb
。timestamps
.....問題があると思われます。関連性の最も近いものは、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