Перенос содержимого базы данных MySQL в PostgreSQL

Я провел рефакторинг проекта и хотел попробовать PostgreSQL вместо MySQL. Теперь я хочу перенести содержимое некоторых таблиц.

Проблема в том, что когда я использую такой запрос выбора (не беспокойтесь об именах, это просто пример)

SELECT id AS id_x, name AS name_x, name2 AS name2_x

Я хочу экспортировать данные таблицы и импортировать их в MySQL. Проблема в том, что синтаксис для INSERT INTO отличается в MySQL и PostgreSQL. Я не хочу экспортировать всю таблицу, потому что я также изменил некоторые части структуры, попытался сделать ее более производительной и т. д. Поэтому я просто хочу получить данные таблицы, но мне нужны эти AS x вещи, потому что имена столбцы изменились

Я уже нашел несколько ссылок по этой теме.

Я могу использовать mysqldump для дампа таблицы и установить параметр --compatible=name. Проблема в том, что я не могу добавить оператор SELECT, верно? Могу только добавить where чек.

Затем я мог бы использовать команду mysql для экспорта запроса, который мне нужен, но mysql не имеет параметра compatible. Как бы я этого добился?


person Musterknabe    schedule 08.03.2016    source источник


Ответы (1)


Вы можете создать временную таблицу, выпустив

SELECT id AS id_x, name AS name_x, name2 AS name2_x FROM oldtable INTO temptable

А затем в качестве второго шага экспортируйте шаблон с помощью mysqldump с параметром --compatible=.

См. https://dev.mysql.com/doc/refman/5.7/en/select-into.html

person MrTux    schedule 08.03.2016
comment
Я идиот, что не подумал об этом, ха-ха. Благодарю вас! - person Musterknabe; 08.03.2016