網站(www.tlkjt.com)整體改版升級。因為希望降低網站的運營成本,所以考慮換數據庫,從原來的企業級數據庫ORACLE換成比較小的MYSQL。數據庫變更中的一個重要過程是網站數據遷移。我在數據遷移過程中遇到了一些問題,花了很長時間才解決。今天就對網站后臺數據庫建設中需要注意的問題進行分析總結。1、不同數據庫的個別數據類型定義不同
改庫測試過程中,發現網站上一篇文章詳情頁的文章發表時間有問題,年月日時:分格式異常。
通過查看頁面調用文件代碼、數據庫記錄等,發現ORACLE中時間的定義類型只有Date,該定義類型的格式包括年、月、日、時間;而在MYSQL中,時間的定義類型包括Date、Time和Datetime。在MYSQL中,Date類型的定義只有年月日,沒有時間。
要解決這個問題,只能將MYSQL數據庫表中創建的字段類型由原來的Date改為Datetime,然后重新導入該類型的數據。
總結:不同的數據庫對具體的類型有不同的定義。因此,在完成新的數據庫表結構組件后,最好遷移少量數據記錄進行數據測試,以便及時發現問題和修改數據類型,然后再遷移所有數據。以免造成數據重復導入,增加工作量。2、不同數據庫對大小寫區分不同
數據庫遷移測試時,發現通過網站后臺管理系統添加的文章不正常,會出現錯誤信息。通過調用數據庫的文章SiteArticle表的記錄,發現新文章對應的記錄條目沒有正常插入。
通過代碼測試檢查,發現網頁文件的代碼與數據庫操作的表名大小寫不一致。 ORACLE數據庫具有良好的容忍度,支持插入SiteArticle表的網頁文件的insert into Sitearticle()代碼。記錄操作;而MYSQL數據庫區分大小寫,只支持insert into SiteArticle()代碼向SiteArticle表中插入新記錄。
要解決這個問題,只能仔細查看網頁文件的源代碼,將所有操作數據庫的語句的數據庫名、表名、字段名等的字符大小寫都改掉,并保持與在數據庫中創建的名稱的大小寫。
總結:從兼容性的角度來看,在建站的時候,要規范數據庫操作相關代碼的大小寫。在以后更換或升級數據庫的過程中,無需擔心區分大小寫的問題,可以減少很多代碼改動。工作量。3、不同數據庫對保留字的要求不同
數據庫遷移過程中,發現統一大小寫問題后,文章提交時關鍵字標簽的記錄插入仍然失敗,報錯提示是語法錯誤。
經過排查,發現是保留字在耍花招。 ORACLE數據庫對保留字的態度比較寬容,表名和字段名都可以使用保留字;而MYSQL數據庫規定,保留字不能作為表名和字段名。網站數據庫Sitearticle 表中的一個字段名為show,這是一個保留字。所以MYSQL數據庫也創建好后,插入新記錄時會報語法錯誤。
為了解決這個問題,需要在網頁代碼中用``符號(即1鍵前面的鍵輸入的符號)將代碼語句中Sitearticle表的show字段名括起來,以區分它。
總結:不同的數據庫對保留字的要求不同。因此,無論當前數據庫類型版本是否支持,在建站數據庫時盡量不要使用保留字作為字段名和表名,以保證后續數據庫版本升級更換后的正常運行。
本文發表于北京網站制作公司推來客http://www.tlkjt.com/
我們專注高端建站,小程序開發、軟件系統定制開發、BUG修復、物聯網開發、各類API接口對接開發等。十余年開發經驗,每一個項目承諾做到滿意為止,多一次對比,一定讓您多一份收獲!