程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> 將MySQL數據庫移植為PostgreSQL

將MySQL數據庫移植為PostgreSQL

編輯:關於MYSQL數據庫
在北美,人們對於 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的使用差異,系統函數的命名和調用的差異等等。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved