重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
to_date(text, text):to_date('05 Dec 2000', 'DD Mon YYYY')
清河门ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为成都创新互联的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:13518219792(备注:SSL证书合作)期待与您的合作!
PostgreSQL可以直接使用::来转换类型, 示例:
select '2014-11-12'::date as dv;
在北美,人们对于
PostgreSQL
的热情不断升温。随着
PostgreSQL
的发展,
PostgreSQL
8.x
已经从技术上超越
MySQL
5.x
,而市场的超越相信只是时间问题。而最终,用户也许有机会享受到可媲美
Oracle
的开源数据库也未尝没有可能。
我供职的互联网公司,服务约
50
万商务用户,经过多次的升级移植,目前公司已经全部将后台数据库从
MySQL
移植到
PostgreSQL
,而个人完成了其中一半的数据库移植工作,所以对数据库从
MySQL
移植到
PostgreSQL
积累了一些经验。在此整理成文,希望能对大家使用
PostgreSQL
有一些启发。
1)
准备:
使用
MySQL
数据备份工具对数据库进行全备份:
mysqldump
-h
[hostname]
-u
[username]
-p
[password]
--extended-insert=false
[dbname]
mysql-db.sql
注意
disable
extended-insert
,
PostgreSQL
不支持
MySQL
的
extended-insert
2)
转化:
将
mysql-db.sql
转为
PostgreSQL
可以导入的
SQL
Script.
MySQL
和
PostgreSQL
在
SQL
语义上存在一定差异,比如
MySQL
不支持
sequence
,触发器等功能,但为此又提供了一些自有的语法规则,而对比一些系统函数,
MySQL
和
PostgreSQL
又存在比较大的差别。为此,我编写了一段语义分析和转化的程序
mysql2psql
mysql2psql
mysql-db.sql
postgres-db.sql
3)
导入:
使用
PostgreSQL
提供的
pgAdmin
将数据文件导入数据库。
4)
SQL
语句的修改:
在实际的应用中,前端的系统往往会嵌入一些具有数据库特性的
SQL
语句,而随着后台数据库的改变,前端的系统程序也同样需要做出相应的修改。
MySQL
和
PostgreSQL
最常见的不同之处包括:Group
by,Join的使用差异,系统函数的命名和调用的差异等等。
Postgresql不支持跨数据库操作。 可以通过pg_dump加上pg_restore或psql来完成迁移,或者直接使用sql语句中的copy语句来完成数据的迁移。
如果表结构在mysql和postgresql的结构差别不大,那么相互迁移是比较简单的。
可以通过用shell脚本来处理能很好的实现。
第一:mysql 导出文本文件。
第二:shell处理文本文件的格式,使之适合postgresql导入格式,生成至目标文本文件。
第三:在postgresql中执行目标文本文件即可。