2016-07-29 79 views
0

我有一个SQL转储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 - 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 ''documents' VALUES (1,'2015-01-05 11:00:21',NULL,7036691,2709001)' at line 1

什么可能是错的?

+2

MySQL使用back.ticks分隔标识符。 (这些''是ANSI SQL。) – jarlh

+0

我对mySQL不太熟悉,但是如果它与sql-server相媲美;你试图将'1'插入到autoincrement属性中。要禁用自动增量,或者不为'id'插入值(在这种情况下,您必须提及您要插入的属性)。 – HoneyBadger

+0

我不确定试试这个INSERT INTO文档VALUES(1,'2015-01-05 11:00:21',NULL,7036691,2709001);删除表格名称的引号。您正在使用单引号进行文件ant双引号进行支付检查语法是否正确。 – mady

回答

0

从Table_name和Column_Names中删除所有双引号&单引号。在MySql AUTOINCREMENT不存在,它必须是'AUTO_INCREMENT'。除了默认值timestamp似乎是无效的。