我几天前从我的MySQL [版本5.6.12]做了一个SQL Dump,现在我正试图导回到同一个数据库。
该行
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
不起作用,它会抛出一个
#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 ') ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1
'错误。
我检查了语法,甚至从成功导入的其他表之一进行了拼写和粘贴。
不确定会出现什么问题。 这是完整的SQL:http://pastebin.com/hrBKv7Su。
注意:我知道到目前为止还没有任何帮助的模拟帖子。
答案 0 :(得分:3)
当遇到指向特定位置的1064错误时,请在之前查看前面的字符或单词。在这种情况下,你会发现一个错误的尾随逗号。
CREATE TABLE IF NOT EXISTS `item` (
`id` mediumint(8) UNSIGNED NOT NULL AUTO_INCREMENT,
`name` VARCHAR(11) NOT NULL,
`string` VARCHAR(30) NOT NULL,
`price` DECIMAL(9,2) NOT NULL,
`note` VARCHAR(500) DEFAULT NULL,
`categoryId` SMALLINT(5) UNSIGNED NOT NULL,
`printerId` tinyint(3) NULL DEFAULT NULL,
`hidden` tinyint(1) NOT NULL DEFAULT '0',
`inStock` tinyint(1) NOT NULL DEFAULT '1',
PRIMARY KEY (`id`),
KEY `categoryId` (`categoryId`,`printerId`),
KEY `printerId` (`printerId`),
/* -------------------------^^^ remove that comma */
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;