您的位置:首页 > 数据库 > MySQL

MYSQL迁移到PostgreSQL

2016-05-13 00:00 375 查看
友情推荐开始
ALSQL是一个通用的数据库查询工具。它支持多种主流数据库、支持直连模式、有统一的使用体验、有强大的过滤功能、有更多数据展示模式、面向项目、为逆向而优化、并且免安装和免费。下载体验及更多图文介绍:http://www.alsql.com
友情推荐结束

最近有一个MYSQL库要迁到PostgreSQL,找了两天也没找到合适又免费的工具,只好自己手工处理。这是这次MYSQL->PostgreSQL数据库转换过程中所做的记录,供参考。

TABLE
-----

1、`要去掉
2、int(11) -> int
3、AUTO_INCREMENT -> serial,不能再指定类型(如:int)
4、ENGINE=InnoDB DEFAULT CHARSET=utf8要去掉
5、UNIQUE KEY DIRSVRDID (DIRSVR,DID) -> UNIQUE(DIRSVR,DID),约束名可以没有,KEY关键字不允许
6、COMMENT要特殊处理,移到Create Table结构体外 -> COMMENT ON TABLE "table_name"."field_name" IS 'xxx';
7、datatime -> timestamp
8、timestamp默认值不能是0,0000-00-00 00:00:00 -> 1970-01-01 00:00:00
9、DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP -> DEFAULT now()
10、 CHARACTER SET gbk要去掉
11、double -> double precision

VIEW
----

1、`要去掉
2、ALGORITHM=UNDEFINED DEFINER=root@localhost SQL SECURITY DEFINER 要去掉
3、DELIMITER ;;要去掉

OTHER
-----

1、PostgreSQL没有PROCEDURE关键字,存储过程要改写

2、这种UPDATE语句:

UPDATE BRIDGE_USERGROUPGRANT a,TEMP_PERMISSION_INFO_IAVM b
SET
b.GRANT_HISTORY=a.GRANT_HISTORY,
b.GRANT_MONITOR=a.GRANT_MONITOR,
b.GRANT_PTZ=a.GRANT_PTZ,
b.GRANT_ALARM=a.GRANT_ALARM,
b.GRANT_RECORD=a.GRANT_RECORD,
b.GRANT_SNAPSHOT=a.GRANT_SNAPSHOT,
b.GRANT_DEVICESET = a.GRANT_DEVICESET,
b.GRANT_RESERVED1 = a.GRANT_RESERVED1,
b.GRANT_RESERVED2 = a.GRANT_RESERVED2
WHERE a.DEVICEID = b.NODEID
AND a.LOCATIONINDEX = b.NODEID2
AND a.DIRECTORYSERVERID = b.DIRECTORYSERVERID
AND b.NodeType <> 0
AND a.UserGroupID= AUSERGROUPID;

要改写为:

UPDATE TEMP_PERMISSION_INFO_IAVM
SET
GRANT_HISTORY=a.GRANT_HISTORY,
GRANT_MONITOR=a.GRANT_MONITOR,
GRANT_PTZ=a.GRANT_PTZ,
GRANT_ALARM=a.GRANT_ALARM,
GRANT_RECORD=a.GRANT_RECORD,
GRANT_SNAPSHOT=a.GRANT_SNAPSHOT,
GRANT_DEVICESET = a.GRANT_DEVICESET,
GRANT_RESERVED1 = a.GRANT_RESERVED1,
GRANT_RESERVED2 = a.GRANT_RESERVED2
from BRIDGE_USERGROUPGRANT a,TEMP_PERMISSION_INFO_IAVM b
WHERE a.DEVICEID = b.NODEID
AND a.LOCATIONINDEX = b.NODEID2
AND a.DIRECTORYSERVERID = b.DIRECTORYSERVERID
AND b.NodeType <> 0
AND a.UserGroupID= AUSERGROUPID;

友情推荐开始
ALSQL是一个通用的数据库查询工具。它支持多种主流数据库、支持直连模式、有统一的使用体验、有强大的过滤功能、有更多数据展示模式、面向项目、为逆向而优化、并且免安装和免费。下载体验及更多图文介绍:http://www.alsql.com
友情推荐结束
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: