由于项目需要,需要将mysql数据库转为 PostgreSQL数据库。大概的整理下了。
一、mysql表
-
-
- CREATE TABLE `ss_users` (
- `ID` int(11) NOT NULL auto_increment,
- `PASSWD` varchar(200) NOT NULL,
- `NAME` varchar(80) NOT NULL,
- `REALNAME` varchar(80) default NULL,
- `EMAIL` varchar(200) default NULL,
- `Depart_ID` int(11) unsigned zerofill default NULL,
- `STATUS` int(2) default NULL,
- `DESCN` varchar(255) default NULL,
- PRIMARY KEY (`ID`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-
- CREATE TABLE `ss_role_resc` (
- `id` int(11) NOT NULL auto_increment,
- `ROLE_ID` int(11) NOT NULL,
- `RESC_ID` int(11) NOT NULL,
- PRIMARY KEY (`id`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- Table "ss_users" DDL CREATE TABLE `ss_users` ( `ID` int(11) NOT NULL auto_increment, `PASSWD` varchar(200) NOT NULL, `NAME` varchar(80) NOT NULL, `REALNAME` varchar(80) default NULL, `EMAIL` varchar(200) default NULL, `Depart_ID` int(11) unsigned zerofill default NULL, `STATUS` int(2) default NULL, `DESCN` varchar(255) default NULL, PRIMARY KEY (`ID`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE `ss_role_resc` ( `id` int(11) NOT NULL auto_increment, `ROLE_ID` int(11) NOT NULL, `RESC_ID` int(11) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
对应的 postgresql表:
-
-
- DROP TABLE ss_users;
-
- CREATE TABLE ss_users
- (
- id serial NOT NULL,
- passwd varchar(200) NOT NULL,
- name varchar(100) NOT NULL,
- realname varchar(100),
- email varchar(200),
- depart_id int8 NOT NULL DEFAULT 0,
- status int2 NOT NULL DEFAULT 1,
- descn varchar(255),
- CONSTRAINT ss_users_pkey PRIMARY KEY (id)
- )
- WITHOUT OIDS;
- ALTER TABLE ss_users OWNER TO postgres;
-
- CREATE TABLE ss_role_resc (
- id serial NOT NULL,
- ROLE_ID int2 NOT NULL,
- RESC_ID int2 NOT NULL,
- CONSTRAINT ss_role_resc_pkey PRIMARY KEY (id)
- )
-- Table: ss_users DROP TABLE ss_users; CREATE TABLE ss_users ( id serial NOT NULL, passwd varchar(200) NOT NULL, name varchar(100) NOT NULL, realname varchar(100), email varchar(200), depart_id int8 NOT NULL DEFAULT 0, status int2 NOT NULL DEFAULT 1, descn varchar(255), CONSTRAINT ss_users_pkey PRIMARY KEY (id) ) WITHOUT OIDS; ALTER TABLE ss_users OWNER TO postgres; CREATE TABLE ss_role_resc ( id serial NOT NULL, ROLE_ID int2 NOT NULL, RESC_ID int2 NOT NULL, CONSTRAINT ss_role_resc_pkey PRIMARY KEY (id) )
大概整理了下转化的一些要点。
表对应:
1、MYSQL 的 ID 唯一键 对应 PostgreSQL中的 serial字段。
2、varchar 都一样,注意字符数。
3、int float double 都有对应的字段
4、字段如果有 “`”,去掉。
5、PostgreSQL 是大小写区分的。默认导进去的sql语句都会转为小写。
6、datetime 对应 TIMESTAMP ,date,time 分别都有对应。 PostgreSQL 有 默认 DEFAULT now()。
导入数据:
1、记得带上分号。
2、表 `ss_users` 的 两个 ` 去掉。
3、数据中 如果是双引号 改为 单引号。
可能出现的几个错误:
1、postgres默认安装好像不支持hibernate自增长。会提示hibernate_sequence不存在。
执行CREATE SEQUENCE hibernate_sequence INCREMENT 1 MINVALUE 1 MAXVALUE 9223372036854775807 START 1
CACHE 1;即可创建postgres的hibernate自增长支持
2、导出的sql语句 导入到PostgreSQL中的时候 可能出现下面的错误。
language "plpgsql" already exists
把下面注释掉,就可以。
--
-- Name: plpgsql; Type: PROCEDURAL LANGUAGE; Schema: -; Owner:
--
3、Postgres另一个小问题上,它的"serial"数据类型(等价于MYSQL的auto_increment)会造成一个"sequence"。如果从
mysql中批量导入数据,会存在 自动 department_id_seq 下的 START 1 不自动增加。解决方法,直接用pgadmin管理更改
。
来自:http://www.yangxinyong.com/blog/entry/2008_09_17_29_mysql+to+PostgreSQL.html
相关推荐
本文档是一份关于如何从MySQL迁移到Postgres Plus的视觉指南,由EnterpriseDB为数据库管理员(DBAs)、应用程序开发人员以及企业架构师发布。它提供了一种逐步迁移的方案,旨在帮助用户平滑过渡至PostgreSQL数据库管理...
给定一个简单的 MySQL 转储文件,通过一些优化转换为 PostgreSQL 格式,包括在数据加载和通过 PostgreSQL COPY 命令从 CSV 文件加载数据之后才建立索引。
- **Sqlserver**、**Oracle**、**MySql**、**PostgreSql** 和 **SqlLite** 都提供了丰富的内置函数支持,包括数学、日期时间、字符串处理等多方面功能。 #### 五、分页 分页是数据库中常见的需求之一,不同的...
日期函数方面,Oracle 使用 TO_CHAR 语句,而 MySQL 使用 DATE_FORMAT 函数。增加一个月,可以使用 ADD_MONTHS 函数在 Oracle 中,而 MySQL 使用 DATE_ADD 函数。截取字符串方面,Oracle 使用 SUBSTR 函数,而 MySQL...
sql allows you to pipe STDIN (hopefully containing SQL) to one or more pre-configured MySQL or PostgreSQL databases output comes out in \t-separated format, allowing further piping (e.g. works really ...
mysql-to-postgres-MySQL至PostgreSQL数据转换 支持MRI或jruby。 master分支支持的最低Ruby版本是2.1.7 ,下一个发行版将具有相同的要求。 使用经过修改的Rails database.yml配置,您可以将mysql-to-postgres集成...
convert adventureworks into 'mysql and postgresql' 下载数据 链接: 提取码: yj4e 复制这段内容后打开百度网盘手机App,操作更方便哦 链接: 提取码: euap 复制这段内容后打开百度网盘手机App,操作更方便哦 将...
支持MySQL,PostgreSQL和SQLite。 例子 通过拯救ActiveRecord :: TransactionIsolationConflict并重试事务,gem自动工作。 安装 将此添加到您的Gemfile中: gem 'transaction_retry' 然后运行: bundle 它可以与...
是一个简单的,基于Netty,异步,高性能和可靠的数据库驱动程序,用于用Kotlin编写的PostgreSQL和MySQL。 入门 // Connection to MySQL DB Connection connection = MySQLConnectionBuilder . createConnection...
根据提供的文档信息,本文将详细解析“从 MySQL 迁移到 PostgreSQL 的大规模数据迁移”这一主题。主要内容包括:Fotolog 的介绍、原有的架构、转换的原因、新的架构、以及迁移过程中的具体步骤等。 ### Fotolog ...
ORM框架在.NET 6.0环境下运行,充分利用了新版本的性能优化和跨平台特性,支持多种主流数据库系统,包括SQL Server、Oracle、MySql、PostgreSQL和SQLite,这使得开发者能够在不同数据库之间进行灵活切换,提升了代码...
### 数据库迁移:从MySQL到PostgreSQL #### PostgreSQL简介 PostgreSQL是一个关系型数据库管理系统,它使用PostgreSQL许可证发行(与BSD许可证类似),拥有全球活跃的社区。它具备许多功能和特性,包括外键、事务和...
Apache一起使用 MySQL 18 问题和常见的错误 18.1 如果 MySQL总是崩溃怎么办 18.2 使用 MySQL 时一些常见错误 18.2.1 MySQL server has gone away错误 18.2.2 Can't connect to [local] MySQL ...
DbLinq is THE LINQ provider that allows to use common databases with an API close to Linq to SQL. It currently supports (by order of appearance): MySQL, Oracle, PostgreSQL, SQLite, Ingres, Firebird......
MySQL中文参考手册.chm 449kb <br/>0 译者序 1 MySQL的一般的信息 1.1 什么是MySQL? 1.2 关于本手册 1.2.1 本手册中使用的约定 1.3 MySQL的历史 1.4 MySQL的主要特征 1.5...
它原生支持使用PostgreSQL作为其数据库系统,但用户可以根据需求将其修改为使用MySQL。在本文中,我们将深入探讨如何将Thingsboard的默认数据库从PostgreSQL更换为MySQL,以便更好地适应你的IT环境。 首先,你需要...
5. **数据迁移工具**:提供了mysql_fdw、postgres_fdw、ora_fdw等多种数据迁移工具,支持与MySQL、Oracle等其他数据库系统的数据交换。 6. **内部网络环境友好**:镜像包内包含了所有必要的依赖项,可在没有外部网络...
Increment_Backup_To_Hive一个增量备份关系数据库(MySQL, PostgreSQL, SQL Server, SQLite, Oracle等)到hive的php脚本工具原理由于sqoop可定制性太差,本工具针对增量备份场景,备份某张表时只需要用户填写几个关键...
功能介绍根据数据库表DDL生成markdown文档,支持Mysql、postgresql等数据库2. 快速使用idea打开项目, 运行项目后,在浏览器上打开swagger地址,填写数据库参数,执行generator接口localhost:8080/swagger-ui....