2013-10-24 4 views
0

У меня есть .mdb-файл. Я пытаюсь экспортировать в базу данных mySQL. Использование mdb-schema Data.mdb | mysql -u root -p Database я получаю следующее сообщение об ошибке:mdb-tools Ошибка синтаксиса mySQL

ERROR 1064 (42000) at line 11: 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 '[Attachments] 
(
    [ItemID]   Long Integer, 
    [Description]   Text (510), 
    [Pare' at line 1 

Вывод кода MDB-схемы (до трубопровода на самом деле выглядит так) <>

1 -- ---------------------------------------------------------- 
    2 -- MDB Tools - A library for reading MS Access database files 
    3 -- Copyright (C) 2000-2011 Brian Bruns and others. 
    4 -- Files in libmdb are licensed under LGPL and the utilities under 
    5 -- the GPL, see COPYING.LIB and COPYING files respectively. 
    6 -- Check out http://mdbtools.sourceforge.net 
    7 -- ---------------------------------------------------------- 
    8 
    9 -- That file uses encoding UTF-8 
10 
11 CREATE TABLE [Attachments] 
12 (
13   [ItemID]      Long Integer, 
14   [Description]     Text (510), 
15   [ParentItemID]     Long Integer, 
16   [Path]     Memo/Hyperlink (255), 
17   [AttachmentType]      Long Integer, 
18   [Notes]     Text (510), 
19   [Imported]      Boolean NOT NULL 
20); 
21 

+ некоторые другие таблицы

Какие эффективно означает, что синтаксическая ошибка находится в первой строке после комментариев? Можете ли вы мне помочь? К хромым глазам это выглядит действительно.

Заранее спасибо :)

+0

Подразумевает ли MySQL квадратные скобки как разделители имен таблиц и столбцов? Кажется, я помню, что для этой цели MySQL использовал backquotes ('). Я также задаюсь вопросом, как MySQL будет реагировать на «Memo/Hyperlink» как тип столбца. (Тем не менее, я долгое время не работал с MySQL.) –

+0

Я считаю, что вам нужен 'varchar', а не' Text'. – Constablebrew

+0

Изменение [(. +)] До '$ 1' ничего не изменило. Все еще ошибка в первой строке. –

ответ

1

По man mdb-schema, мы можем включать необязательный параметр backend после имени базы данных. Когда я попытался

mdb-schema test.mdb mysql > output.txt 

Выходной файл содержал этот

-- ---------------------------------------------------------- 
-- MDB Tools - A library for reading MS Access database files 
-- Copyright (C) 2000-2011 Brian Bruns and others. 
-- Files in libmdb are licensed under LGPL and the utilities under 
-- the GPL, see COPYING.LIB and COPYING files respectively. 
-- Check out http://mdbtools.sourceforge.net 
-- ---------------------------------------------------------- 

-- That file uses encoding UTF-8 

CREATE TABLE `Contacts` 
(
    `ID`   int, 
    `LastName`   varchar (510), 
    `FirstName`   varchar (510), 
    `Notes`   text (255) 
); 

Это, безусловно, выглядит намного ближе к синтаксису MySQL по сравнению с образцом в этом вопросе.

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

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