MySQL свалить в дерби
Я использую дерби для развития затмения. Можно ли сбросить таблицу из MySQL и каким-то образом использовать ее для дерби? Я знаю, что ddl и dml различны для обеих баз данных, но я ищу способ, отличный от dump / export, который был бы уместен.
3 ответа
Есть два варианта, которые я могу найти; если я правильно понимаю ваш вопрос, я думаю, что по крайней мере один из них покроет то, что вы ищете.
Если вы сосредоточены на данных (или их подмножестве) из одной таблицы, используйте ij
как указано в документации по инструментам Derby (см. "Использование процедур массового импорта и экспорта"). Данные могут быть извлечены из MySQL с помощью команд встроенного форматирования в требуемом формате, который выглядит довольно стандартным CSV (для этого потребуется наличие соответствующей таблицы, уже существующей в базе данных Derby).
Вот пример с форумов MySQL:
SELECT a,b,a+b INTO OUTFILE '/tmp/result.text'
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
FROM test_table;
Если вы хотите импортировать все, Apache DdlUtils позволит перенести всю схему из MySQL в Derby. Это не потребует повторного определения таблицы в Derby, так как это будет происходить как часть процесса импорта / экспорта с DdlUtils.
Если вам не нужно автоматизировать процесс, инструмент "Плагин DBCopy для SQuirreL SQL Client" может работать для вас. Возможно, есть и другие инструменты, но это тот, который я знаю (однако никогда не использовал себя).
Если вам нужно автоматизировать процесс, и если вас не волнует DDL, я бы, вероятно, использовал CSV.
Чтобы перенести данные из MySQL (производственная среда) в Derby (среда разработки), я использую следующую команду:
mysqldump -u root -h 127.0.0.1 --compatible=ansi --complete-insert --skip-add-drop-table --skip-add-locks --skip-comments --skip-disable-keys --skip-set-charset --no-create-info dbname > export.sql
Но особенно в Дерби, у меня есть также проблема снятия ограничений. Поэтому операторы вставки должны быть в правильном порядке!