網站制作(m.newbst.com)整體改版升級,因為想要降低網站運行成本,考慮變更數據庫,由原來的企業級數據庫ORACLE變更為較為小型的MYSQL,數據庫的變更中的一個重要過程就是網站的數據遷移。在數據遷移過程中遇到一些問題并花了較長的時間解決,今天就分析總結下網站的后臺數據庫構建中需要注意的問題。
1、不同數據庫的個別數據類型定義不同
在數據庫變更的測試過程中,發現網站以往的文章詳情頁面的文章發表時間顯示有問題,非正常格式的年—月—日時:分的樣式。
經過頁面調取文件代碼、數據庫記錄等內容的檢查后,發現是由于ORACLE中對時間的定義類型只有Date一種,而這種定義類型的格式包括年月日和時間;而在MYSQL中對時間的定義類型包含Date、Time、Datetime三種,在MYSQL中對于Date類型的定義僅僅包含年月日而不包含時間。
要解決這個問題,只能把MYSQL數據庫表中創建的字段類型由原來的Date改為Datetime,再重新進行這類數據的導入。
小結:不同的數據庫對具體類型定義不同,因此在完成新數據庫表結構構件后,好進行少量數據記錄條遷移進行數據測試,能夠及時發現問題所在并進行數據類型修改,再進行全部數據的遷移,以免造成數據重復導入,增加工作量。2、不同數據庫對大小寫區分不同
在數據庫遷移測試過程中,發現通過網站后臺管理系統增加的文章出現異常情況,會出現報錯信息。通過調取數據庫的文章SiteArticle表的記錄發現新文章對應的記錄條未能正常插入。
通過代碼測試檢查發現,是由于網頁文件的代碼對于數據庫的操作的表名字大小寫不一致造成的,ORACLE數據庫具有較好的包容度,支持網頁文件關于insert into Sitearticle()代碼對于SiteArticle表的插入新記錄操作;而MYSQL數據庫對大小寫敏感,只支持insert into SiteArticle()代碼對于SiteArticle表的插入新記錄操作。
要解決這個問題,只能仔細查看網頁文件源碼,更改對數據庫操作的所有語句的數據庫名、表名、字段名等的字符大小寫,保持與數據庫中創建名稱的大小寫一致。
小結:從兼容性角度考慮,在網站建設的時候就規范數據庫操作相關代碼中的大小寫問題,在今后更換數據庫或升級數據庫的過程中,就不必擔心大小寫敏感度問題,也減少許多更改代碼工作量。3、不同數據庫對保留字的要求不同
在數據庫遷移過程中,發現在統一了大小寫問題后,提交文章時候關鍵字標簽的記錄插入依舊失敗,報錯信息提示為語法錯誤。
經過排查,發現是保留字在搗鬼。在ORACLE數據庫中對保留字的態度是較為寬容的,可以表名和字段名稱均可以使用保留字;而MYSQL數據庫規定保留字是不可以作為表名和字段名的。在網站的數據庫Sitearticle表中的其中一個字段名為show,屬于保留字,因此同樣建立在MYSQL數據庫后,插入新記錄報語法錯誤。
解決這個問題,需要在網頁代碼中將代碼語句中的關于Sitearticle表的show字段名用``符號(即1按鍵前面的按鍵輸入的符號)引起來以區別。
小結:不同數據庫對保留字的要求不同,所以在網站數據庫建設的時候不論當前數據庫類型版本是否支持,盡量不用保留字作為字段名和表名,以保障后期數據庫版本的升級和替換后運行正常。
當前題目:網站數據從ORACLE遷移到MYSQL教程
URL標題:http://m.newbst.com/news25/227475.html
成都網站建設公司_創新互聯,為您提供微信小程序、品牌網站制作、網站維護、用戶體驗、移動網站建設、服務器托管
廣告
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源:
創新互聯