我在我的生产服务器中有一个数据库,它工作得很好…我所做的是转储数据库并在我的本地系统中执行。创建除一个表之外的所有其他表...所以我手动插入了,
CREATE TABLE `contact` (
`contactId` int(11) NOT NULL AUTO_INCREMENT,
`cRefId` int(20) DEFAULT '0',
`contactFirstName` varchar(100) DEFAULT NULL,
`contactLastName` varchar(100) DEFAULT NULL,
`contactPhone` varchar(35) DEFAULT NULL,
`contactEmail` varchar(150) DEFAULT NULL,
`organizationid` int(11) NOT NULL,
`mobileNo` varchar(35) DEFAULT NULL,
`dor` datetime DEFAULT NULL,
`doe` datetime DEFAULT NULL,
`dod` datetime DEFAULT NULL,
`designation` varchar(50) DEFAULT NULL,
`income` double DEFAULT NULL,
`homeloan` tinyint(1) DEFAULT NULL,
`companyName` varchar(200) DEFAULT NULL,
`isDeleted` tinyint(1) DEFAULT '0',
`addressId` int(11) DEFAULT NULL,
`accgroupid` int(11) DEFAULT NULL,
`createdBy` int(11) DEFAULT NULL,
`editedBy` int(11) DEFAULT NULL,
`deletedBy` int(11) DEFAULT NULL,
`assignedto` int(11) DEFAULT NULL,
`industryid` int(11) DEFAULT NULL,
`note` varchar(150) DEFAULT NULL,
`twirrerId` varchar(150) DEFAULT NULL,
`linkedinId` varchar(150) DEFAULT NULL,
PRIMARY KEY (`contactId`),
KEY `aa` (`organizationid`),
KEY `add_id` (`addressId`),
KEY `idx_contactid` (`contactId`),
KEY `FK_contact` (`industryid`),
KEY `fk_contacteditedby_user` (`editedBy`),
KEY `fk_contactaccount_account` (`accgroupid`,`contactId`),
KEY `contact_First_Name` (`contactFirstName`) USING BTREE
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=latin1;但是当我执行这个命令时,我得到了下面的错误,
Error Code : 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 'USING BTREE
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=latin1' at line 35发布于 2010-07-12 13:19:27
我非常确定您必须指定您正在使用的索引列的using :
... KEY `contact_First_Name` USING BTREE (`contactFirstName`)链接状态(MySQL 5.1)中引用文档:
{INDEX|KEY} [index_name] [index_type] (index_col_name,...) [index_option] ...[index_type]是using btree位。
如果失败,请检查源服务器和目标服务器上是否有兼容的版本。有一个补丁使得对该命令的解释在它们应该是什么顺序方面更加健壮。
或者,您可以完全删除using btree并使用服务器默认方法,不过在选择它作为选项之前,您应该了解这一方法的后果。
发布于 2010-07-12 15:22:52
您应该在开发和生产系统中使用相同版本的mysql (当然,测试mysql升级时除外)。
使用不同的版本会使测试无效。不要这样做。您的开发系统应该运行与您在生产中使用的完全相同的服务器构建,唯一不同的是为了使其工作所需的参数(假设您在生产中有32G的ram,但在您的测试服务器上只有4G,您需要将缓冲区设置得更小)。
发布于 2010-07-12 13:19:07
你确定你使用的是支持'USING BTREE‘的MySQL版本吗?如果我没记错的话,这是MySQL 5.1的一个特性。
你也可以点击http://bugs.mysql.com/bug.php?id=25162
编辑:实际上,这只是MySQL 5的一个特性。
https://stackoverflow.com/questions/3226013
复制相似问题