Mysql SQL命令行错误

Mysql SQL命令行错误,mysql,mysql-error-1064,dbforge,Mysql,Mysql Error 1064,Dbforge,我试图使用命令行将表添加到MySQL中的数据库中: mysql -u Jon -p testdb --password=password < "C:\Users\Jon\Documents\Summer\Do\SQL\root.sql" 我使用dbForge创建了一个名为root.sql的sql文件: SET NAMES 'utf8'; USE testdb; DROP TABLE IF EXISTS roottable; CREATE TABLE roottable (

我试图使用命令行将表添加到MySQL中的数据库中:

mysql -u Jon -p testdb --password=password < "C:\Users\Jon\Documents\Summer\Do\SQL\root.sql"
我使用dbForge创建了一个名为
root.sql的sql文件:

SET NAMES 'utf8';

USE testdb;

DROP TABLE IF EXISTS roottable;
CREATE TABLE roottable 
  (
    ProductName VARCHAR(255) DEFAULT NULL,
    Clearing VARCHAR(255) DEFAULT NULL,
    Globex VARCHAR(255) DEFAULT NULL,
    IsActive VARCHAR(255) DEFAULT NULL,
    FloorId VARCHAR(255) DEFAULT NULL,
    GroupId VARCHAR(255) DEFAULT NULL,
    SubGroup VARCHAR(255) DEFAULT NULL,
    ConversionFactor VARCHAR(255) DEFAULT NULL,
    Id INT PRIMARY KEY AUTO_INCREMENT
  )
ENGINE = INNODB
CHARACTER SET utf8
COLLATE utf8_general_ci;

我认为这段代码应该是这样的:

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 `testdb` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci ;
USE `testdb`;

DROP TABLE IF EXISTS `roottable`;
CREATE TABLE `testdb`.`roottable`
  (
    `ProductName` VARCHAR(255) DEFAULT NULL,
    `Clearing` VARCHAR(255) DEFAULT NULL,
    `Globex` VARCHAR(255) DEFAULT NULL,
    `IsActive` VARCHAR(255) DEFAULT NULL,
    `FloorId` VARCHAR(255) DEFAULT NULL,
    `GroupId` VARCHAR(255) DEFAULT NULL,
    `SubGroup` VARCHAR(255) DEFAULT NULL,
    `ConversionFactor` VARCHAR(255) DEFAULT NULL,
    `Id` INT NOT NULL AUTO_INCREMENT,
     PRIMARY KEY (`Id`) 
  )
ENGINE = InnoDB;

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

这可能很有趣,但是尝试将SQL文件保存为utf8,使用notepad.exe打开它,然后另存为并选择utf-8,然后运行查询。
试试看。

您的语法是正确的,我成功地运行了它。我还成功地对新创建的
testdb
运行了
root.sql
,没有出现错误。我的猜测是,您的文件中有一些奇怪的非打印或标记化空白字符,这些字符没有复制到您的问题中。试着在十六进制编辑器中查看它right@ioiomad语法不对@Ty221我成功地运行了它
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 `testdb` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci ;
USE `testdb`;

DROP TABLE IF EXISTS `roottable`;
CREATE TABLE `testdb`.`roottable`
  (
    `ProductName` VARCHAR(255) DEFAULT NULL,
    `Clearing` VARCHAR(255) DEFAULT NULL,
    `Globex` VARCHAR(255) DEFAULT NULL,
    `IsActive` VARCHAR(255) DEFAULT NULL,
    `FloorId` VARCHAR(255) DEFAULT NULL,
    `GroupId` VARCHAR(255) DEFAULT NULL,
    `SubGroup` VARCHAR(255) DEFAULT NULL,
    `ConversionFactor` VARCHAR(255) DEFAULT NULL,
    `Id` INT NOT NULL AUTO_INCREMENT,
     PRIMARY KEY (`Id`) 
  )
ENGINE = InnoDB;

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