【发布时间】:2016-12-03 23:21:45
【问题描述】:
我有一个 sql 转储
CREATE TABLE "documents" (
"id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
"create_ts" timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
"update_ts" timestamp DEFAULT NULL,
"number" int(11) NOT NULL,
"entity_id" int(11) NOT NULL
);
INSERT INTO 'documents' VALUES (1,'2015-01-05 11:00:21',NULL,7036691,2709001);
CREATE TABLE "payments" (
"id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
"create_ts" timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
"update_ts" timestamp DEFAULT NULL,
"amount" decimal(10,2) NOT NULL,
"finish_time" timestamp NOT NULL DEFAULT '0000-00-00 00:00:00'
);
INSERT INTO "payments" VALUES (2709001,'2015-01-05 11:00:21',NULL,1000.00,'2015-01-04 21:00:00');
但是当我尝试通过 phpmyadmin 或 navicat 等工具上传它时,我收到了一个错误:
1064 - 您的 SQL 语法有错误;检查手册 对应于您的 MySQL 服务器版本,以便使用正确的语法 ''文件'值附近(1,'2015-01-05 11:00:21',NULL,7036691,2709001)' 在第 1 行
有什么问题?
【问题讨论】:
-
MySQL 使用 back.ticks 作为分隔标识符。 (那些
"是 ANSI SQL。) -
我对mysql不太熟悉,但如果它的工作方式可以与sql-server媲美;您正在尝试将
1插入到自动增量属性中。您要么必须禁用自动增量,要么不为id插入值(在这种情况下,您必须提及您正在插入的属性)。 -
我不确定试试这个 INSERT INTO 文档 VALUES (1,'2015-01-05 11:00:21',NULL,7036691,2709001);。删除表名的引号。您在文档中使用单引号,在付款检查中使用双引号是否语法正确。
标签: mysql sql mysql-workbench mysqldump mysql-error-1064