将Postgresql表转换为Mysql表

时间:2011-04-06 10:54:17

标签: mysql postgresql

我有一个表为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数据库中使用相同数据的同一个表。我尝试了命令:

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

我无法在Mysql中加载该文件。请以最简单的方式帮助我。

请检查附带的csv文件

谢谢&最好的祝福, Adarsh Sharma

1 个答案:

答案 0 :(得分:1)

至少,您需要编辑从PostgreSQL中提取的SQL文件。 PostgreSQL和MySQL有许多共同的功能,但使用这些功能的方式不同。

例如,PostgreSQL和MySQL都支持自动递增ID号,但是它们使用不同的保留字和技术来实现这些id号。 PostgreSQL在该过程中使用保留字“SERIAL”作为DDL的一部分; MySQL没有。

如果PostgreSQL文件使用MySQL的任何保留字作为表或列名,则需要使用反引号来保护它。反引号在PostgreSQL中不合法。

如果我只有一张表可以处理,我可能只是

  • 重写DDL以符合MySQL的要求 要求,
  • 将数据(不是架构)转储到 使用pg_dump,
  • 的磁盘
  • 并将数据读入新MySQL 表