將MySQL數據庫移植為PostgreSQL。本站提示廣大學習愛好者:(將MySQL數據庫移植為PostgreSQL)文章只能為提供參考,不一定能成為您想要的結果。以下是將MySQL數據庫移植為PostgreSQL正文
在北美,人們關於 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的應用差別,體系函數的定名和挪用的差別等等。