Преобразование таблицы Postgresql в таблицу Mysql

0

У меня есть таблица polit_activity со схемой как:

CREATE TABLE polit_activity
(
 id serial NOT NULL,
 category_name character varying,
 soi character varying,
 heading character varying,
 description character varying,
 event_loc character varying,
 relloc character varying,
 news_date timestamp with time zone,
 sectors character varying,
 results character varying,
 remarks character varying,
 recovery character varying,
 oth_pers character varying,
 mil_units character varying,
 mil_ops_cdr character varying,
 gp_org_cdr character varying,
 gr character varying
)
WITH (
 OIDS=FALSE
);

Теперь мне нужна та же таблица с теми же данными в Mysql Database. Я пробовал команды:

psql> \o /var/lib/abc.csv
psql> select * from polit_activity;

Я не могу загрузить этот файл в Mysql. Пожалуйста, помогите мне с самым простым способом сделать это.

Пожалуйста, проверьте прикрепленный файл csv

Спасибо и с наилучшими пожеланиями, Адарш Шарма

  • 1
    вложение отсутствует !!
  • 0
    В чем именно проблема, как вы пытались? Любое сообщение об ошибке? Не могли бы вы создать довольно идентичную таблицу в MySQL?
Теги:

1 ответ

1

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

В одном примере PostgreSQL и MySQL поддерживают автоматическое увеличение номеров идентификаторов, но для реализации этих идентификационных номеров используются разные зарезервированные слова и технологии. PostgreSQL использует зарезервированное слово "SERIAL" как часть DDL в этом процессе; MySQL не работает.

Если файл PostgreSQL использует любое зарезервированное слово MySQL в качестве имени таблицы или столбца, вам необходимо защитить его с помощью обратных ссылок. Backticks не являются законными в PostgreSQL.

Если бы у меня была только одна таблица, с которой мне пришлось бы иметь дело, я бы, вероятно, просто

  • переписать DDL для соответствия требованиям MySQL Требования,
  • сбрасывать данные (а не схему) на диск с помощью pg_dump,
  • и прочитайте данные в новом MySQL таблица.
  • 0
    Урк - вы не можете использовать «двойные кавычки» для защиты зарезервированных слов, как стандарт SQL? Или MySQL поддерживает только обратные пометки?
  • 0
    Кстати, @AdarshSharma, для преобразования в одну таблицу обычно проще использовать имя таблицы COPY tablename TO /some/server/path или psql-вариант на стороне клиента \copy tablename TO /home/local/path . Необязательное предложение WITH CSV дает вам большой контроль над выводом, а многочисленные инструменты позволяют загружать разделенные табуляцией / запятыми данные в таблицы MySQL. Из памяти это обычно проще и быстрее, чем спорить pg_dump --data-only --inserts --table tablename dbname выводить, чтобы сделать MySQL счастливым.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню