網(wǎng)站數(shù)據(jù)從ORACLE遷移到MYSQL教程
  • 更新時(shí)間:2024-11-08 13:59:16
  • 網(wǎng)站建設(shè)
  • 發(fā)布時(shí)間:1年前
  • 211

網(wǎng)站(www.tlkjt.com)整體改版升級。因?yàn)橄M档途W(wǎng)站的運(yùn)營成本,所以考慮換數(shù)據(jù)庫,從原來的企業(yè)級數(shù)據(jù)庫ORACLE換成比較小的MYSQL。數(shù)據(jù)庫變更中的一個重要過程是網(wǎng)站數(shù)據(jù)遷移。我在數(shù)據(jù)遷移過程中遇到了一些問題,花了很長時(shí)間才解決。今天就對網(wǎng)站后臺數(shù)據(jù)庫建設(shè)中需要注意的問題進(jìn)行分析總結(jié)。1、不同數(shù)據(jù)庫的個別數(shù)據(jù)類型定義不同

改庫測試過程中,發(fā)現(xiàn)網(wǎng)站上一篇文章詳情頁的文章發(fā)表時(shí)間有問題,年月日時(shí):分格式異常。

通過查看頁面調(diào)用文件代碼、數(shù)據(jù)庫記錄等,發(fā)現(xiàn)ORACLE中時(shí)間的定義類型只有Date,該定義類型的格式包括年、月、日、時(shí)間;而在MYSQL中,時(shí)間的定義類型包括Date、Time和Datetime。在MYSQL中,Date類型的定義只有年月日,沒有時(shí)間。

要解決這個問題,只能將MYSQL數(shù)據(jù)庫表中創(chuàng)建的字段類型由原來的Date改為Datetime,然后重新導(dǎo)入該類型的數(shù)據(jù)。

總結(jié):不同的數(shù)據(jù)庫對具體的類型有不同的定義。因此,在完成新的數(shù)據(jù)庫表結(jié)構(gòu)組件后,最好遷移少量數(shù)據(jù)記錄進(jìn)行數(shù)據(jù)測試,以便及時(shí)發(fā)現(xiàn)問題和修改數(shù)據(jù)類型,然后再遷移所有數(shù)據(jù)。以免造成數(shù)據(jù)重復(fù)導(dǎo)入,增加工作量。2、不同數(shù)據(jù)庫對大小寫區(qū)分不同

數(shù)據(jù)庫遷移測試時(shí),發(fā)現(xiàn)通過網(wǎng)站后臺管理系統(tǒng)添加的文章不正常,會出現(xiàn)錯誤信息。通過調(diào)用數(shù)據(jù)庫的文章SiteArticle表的記錄,發(fā)現(xiàn)新文章對應(yīng)的記錄條目沒有正常插入。

通過代碼測試檢查,發(fā)現(xiàn)網(wǎng)頁文件的代碼與數(shù)據(jù)庫操作的表名大小寫不一致。 ORACLE數(shù)據(jù)庫具有良好的容忍度,支持插入SiteArticle表的網(wǎng)頁文件的insert into Sitearticle()代碼。記錄操作;而MYSQL數(shù)據(jù)庫區(qū)分大小寫,只支持insert into SiteArticle()代碼向SiteArticle表中插入新記錄。

要解決這個問題,只能仔細(xì)查看網(wǎng)頁文件的源代碼,將所有操作數(shù)據(jù)庫的語句的數(shù)據(jù)庫名、表名、字段名等的字符大小寫都改掉,并保持與在數(shù)據(jù)庫中創(chuàng)建的名稱的大小寫。

總結(jié):從兼容性的角度來看,在建站的時(shí)候,要規(guī)范數(shù)據(jù)庫操作相關(guān)代碼的大小寫。在以后更換或升級數(shù)據(jù)庫的過程中,無需擔(dān)心區(qū)分大小寫的問題,可以減少很多代碼改動。工作量。3、不同數(shù)據(jù)庫對保留字的要求不同

數(shù)據(jù)庫遷移過程中,發(fā)現(xiàn)統(tǒng)一大小寫問題后,文章提交時(shí)關(guān)鍵字標(biāo)簽的記錄插入仍然失敗,報(bào)錯提示是語法錯誤。

經(jīng)過排查,發(fā)現(xiàn)是保留字在耍花招。 ORACLE數(shù)據(jù)庫對保留字的態(tài)度比較寬容,表名和字段名都可以使用保留字;而MYSQL數(shù)據(jù)庫規(guī)定,保留字不能作為表名和字段名。網(wǎng)站數(shù)據(jù)庫Sitearticle 表中的一個字段名為show,這是一個保留字。所以MYSQL數(shù)據(jù)庫也創(chuàng)建好后,插入新記錄時(shí)會報(bào)語法錯誤。

為了解決這個問題,需要在網(wǎng)頁代碼中用``符號(即1鍵前面的鍵輸入的符號)將代碼語句中Sitearticle表的show字段名括起來,以區(qū)分它。

總結(jié):不同的數(shù)據(jù)庫對保留字的要求不同。因此,無論當(dāng)前數(shù)據(jù)庫類型版本是否支持,在建站數(shù)據(jù)庫時(shí)盡量不要使用保留字作為字段名和表名,以保證后續(xù)數(shù)據(jù)庫版本升級更換后的正常運(yùn)行。

本文發(fā)表于北京網(wǎng)站制作公司推來客http://www.tlkjt.com/

我們專注高端建站,小程序開發(fā)、軟件系統(tǒng)定制開發(fā)、BUG修復(fù)、物聯(lián)網(wǎng)開發(fā)、各類API接口對接開發(fā)等。十余年開發(fā)經(jīng)驗(yàn),每一個項(xiàng)目承諾做到滿意為止,多一次對比,一定讓您多一份收獲!

本文章出于推來客官網(wǎng),轉(zhuǎn)載請表明原文地址:https://www.tlkjt.com/web/13240.html
推薦文章

在線客服

掃碼聯(lián)系客服

3985758

回到頂部