2010-07-12 7 views
1

У меня есть база данных на моем производственном сервере, и она отлично работает ... Что я сделал, так и взяла дамп этого БД и выполнила в моей локальной системе .. Все остальные таблицы созданы за исключением одной таблицы ... Так что я вручную вставить его,Что не так с этим запросом mysql create table?

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 
+0

Я запускаю это и его работу! –

ответ

3

Я довольно уверен, что вы должны указать usingbefore индекс столбца, который вы используете:

... KEY `contact_First_Name` USING BTREE (`contactFirstName`) 

В DOCO, описываемый в этой ссылке состояния (MySQL 5.1):

{INDEX|KEY} [index_name] [index_type] (index_col_name,...) [index_option] ... 

и [index_type] - using btree бит.

В противном случае убедитесь, что у вас есть совместимые версии на исходном и конечном сервере. Был патч, который сделал интерпретацию этой команды немного более надежной с точки зрения того, в каком порядке они должны быть.

Или вы можете удалить using btree в целом и использовать метод по умолчанию сервера, хотя вы должны понимать последствия этого прежде чем выбрать его в качестве опции.

+0

это не похоже на ту же ошибку. –

+0

ya это сработало ... Я не видел ссылку, которую вы разместили .. Спасибо человеку .. –

1

вы уверены, что вы используете версию MySQL, где поддерживается "ИСПОЛЬЗОВАНИЕ BTREE? Если я правильно помню, это функция MySQL 5.1.

Вы можете также ударил http://bugs.mysql.com/bug.php?id=25162

Edit: На самом деле, это просто особенность MySQL 5.

2

Вы должны использовать ту же версию mysql в своих системах разработки и производства (за исключением, конечно, при тестировании обновления mysql).

Использование другой версии делает недействительным тестирование. Не делай этого. Ваша система разработки должна запускать ту же самую сборку сервера, какую вы используете в процессе производства, единственными вещами, которые должны быть разными, являются параметры, которые должны быть для того, чтобы они работали (скажем, у вас есть 32 ГБ оперативной памяти в производстве, но только 4G на вашем тестовый сервер, вам нужно сделать там буферы)

 Смежные вопросы

  • Нет связанных вопросов^_^