У меня есть таблица 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
Спасибо и с наилучшими пожеланиями, Адарш Шарма
По крайней мере, вам нужно будет отредактировать файл SQL, извлеченный из PostgreSQL. PostgreSQL и MySQL имеют множество общих функций, но разные способы использования этих функций.
В одном примере PostgreSQL и MySQL поддерживают автоматическое увеличение номеров идентификаторов, но для реализации этих идентификационных номеров используются разные зарезервированные слова и технологии. PostgreSQL использует зарезервированное слово "SERIAL" как часть DDL в этом процессе; MySQL не работает.
Если файл PostgreSQL использует любое зарезервированное слово MySQL в качестве имени таблицы или столбца, вам необходимо защитить его с помощью обратных ссылок. Backticks не являются законными в PostgreSQL.
Если бы у меня была только одна таблица, с которой мне пришлось бы иметь дело, я бы, вероятно, просто
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 счастливым.