MySQL. Сценарий.sql и импорт в Apache Derby

Таким образом, по-видимому, mysqldump может экспортировать в ANSI-совместимый формат, так что вы можете импортировать в базы данных других поставщиков.

Однако, пытаясь импортировать в Apache Derby, я сталкиваюсь со всеми этими синтаксическими ошибками. Думаю, я попробую кое-что из регулярных выражений и исправлю вещи, но кажется, что их больше, чем пара.

Что-то мне не хватает в mysqldump? Пробовал ddlutils, но не смог добиться прогресса после шага 3 с этими документами, которые кажутся устаревшими.

У меня есть другие варианты с этим?

2 ответа

Решение

mysqldump вариант --compatible=ansi не создает сценарий SQL, полностью совместимый с ANSI, он просто пытается получить результат, более совместимый с ANSI: "Создание вывода, более совместимого с другими системами баз данных или со старыми серверами MySQL".

К сожалению, синтаксис SQL, поддерживаемый каждой базой данных, немного отличается. SQL является относительно слабым стандартом, намного слабее, чем Javascript или даже C. Некоторые базы данных поддерживают функции совместимости, такие как MySQL, или даже режимы совместимости (отказ от ответственности: я являюсь основным автором H2), но даже этого иногда недостаточно.

У вас есть несколько вариантов: вы можете изменить сгенерированный сценарий SQL вручную или использовать другой инструмент для копирования структуры / данных таблицы. Одним из таких инструментов является плагин SQuirreL DB Copy (я никогда не использовал его, но насколько я слышал, он работает хорошо).

Если вы можете экспортировать данные в формат CSV или что-то подобное, вы можете использовать процедуры импорта данных Derby для импорта ваших данных: http://db.apache.org/derby/docs/10.7/ref/rrefimportproc.html

Другие вопросы по тегам