国产精品一区二区精品_久久小视频_天堂va在线观看_99久久夜色精品国产亚洲96_日本手机在线视频_av成人免费

當(dāng)前位置:首頁 > 網(wǎng)站舊欄目 > 學(xué)習(xí)園地 > 程序開發(fā)教程 > oracle移植到mysql注意事項(xiàng)

oracle移植到mysql注意事項(xiàng)
2010-01-17 10:57:40  作者:  來源:
客戶用的數(shù)據(jù)庫是mysql,而研發(fā)好的產(chǎn)品支持oracle,為了讓客戶掏腰包,我們必須把數(shù)據(jù)庫環(huán)境從oracle轉(zhuǎn)向mysql。我們在轉(zhuǎn)換的過程中碰到了下面一些問題,希望能給同樣遭遇的同仁們一些借鑒。如果我們在最初的設(shè)計(jì)、編碼過程中注意數(shù)據(jù)庫的移植性,這種情況下可以完全不需要作額外工作。

  一、數(shù)據(jù)庫環(huán)境從oracle轉(zhuǎn)向mysql碰到的問題。

  因?yàn)檫壿嫴蛔儯栽瓌t是不改應(yīng)用程序代碼,只改數(shù)據(jù)庫表的創(chuàng)建/初始化sql。下面是我們碰到的問題以及解決辦法。

  1、 大小寫敏感的區(qū)別(如果服務(wù)器OS是linux)。

  在oracle中一般情況下不區(qū)分大小寫。有時(shí)候我們在使用oracle不注意大小寫的問題,表名和字段名不加雙引號(hào)是不區(qū)分大小寫的,像這樣:insert into tableName 和 insert into TABLENAME效果是一樣的,用工具導(dǎo)出創(chuàng)建/數(shù)據(jù)初始化腳本,得到的結(jié)果一般表名和字段名轉(zhuǎn)化成了大寫。

  但在MySQL中,所使用操作系統(tǒng)的大小寫敏感性決定了數(shù)據(jù)庫名和表名的大小寫敏感性。數(shù)據(jù)庫對應(yīng)數(shù)據(jù)目錄中的目錄,數(shù)據(jù)庫中的每個(gè)表至少對應(yīng)數(shù)據(jù)庫目錄中的一個(gè)文件(也可能是多個(gè),取決于存儲(chǔ)引擎)。因此,使用數(shù)據(jù)庫或表實(shí)際上是操縱這些文件(夾),所以使用操作系統(tǒng)的大小寫敏感性決定了數(shù)據(jù)庫名和表名的大小寫敏感性。在以linux為內(nèi)核的操作系統(tǒng)中是大小寫敏感的。

  解決的辦法是把mysql的數(shù)據(jù)庫名和oracle的大小寫保持一致,表名與應(yīng)用程序中sql字符串中的表名保持一致,如果應(yīng)用程序中字段名用了雙引號(hào),那請把sql中的字段名大小寫與雙引號(hào)里的字符保持一致。如果你的應(yīng)用程序所引用的表名、字段沒有統(tǒng)一大小寫,那麻煩就大了。

  2、保留字的區(qū)別。

  像sql語言的函數(shù)名(如:inteval,show)等是保留字。Oracle中保留字是可以作為表名和字段名,并且不影響使用,但mysql中保留字是不能作為表名和字段名,如果使用會(huì)報(bào)語法錯(cuò)誤。

  解決辦法,把sql語句中的保留字用‘`’符號(hào)引起來,這個(gè)符號(hào)位于鍵盤的tab鍵上面;如果是字段名還有另外一種方法tablename.字段名。像這樣:insert into tablename (id, `interval`) value(….. 或insert into tablename (id, tablename.inteval) value(….. 。

  3、數(shù)據(jù)類型的區(qū)別。

  在mysql中沒有像oracle中的varchar2、number,mysql有與之對應(yīng)的varchar、numeric,當(dāng)然在oracle中沒有mysql的time類型。

  解決辦法是替換。

  4、自動(dòng)增長類型的區(qū)別。

  Oracle有sequence,mysql中沒有,但有auto_increment屬性。

  解決辦法是把Oracle中sequence轉(zhuǎn)換成使用auto_increment屬性,某些情況可能還有一種辦法可以解決問題,新建一個(gè)獨(dú)立的表用來專門記錄自動(dòng)增長型的數(shù)據(jù)。

  5、索引長度限制的區(qū)別。

  從MySQL 4.1.2開始,MyISAM和InnoDB表索引長度支持1000字節(jié),也就是說索引字段的長度不能超過1000字節(jié),如果超過會(huì)報(bào)這樣的錯(cuò):ERROR 1071 (42000): Specified key was too long; max key length is 1000 bytes。如果是UTF-8編碼,相當(dāng)于333個(gè)字符的長度(因?yàn)閁TF8一個(gè)字符占3個(gè)字節(jié))。Oracle的索引長度限制比mysql要寬松得多。

  解決的辦法就不必要多說了,要么改索引的定義,要么改字段的定義長度。

  二、為了數(shù)據(jù)庫的兼容性我們應(yīng)該注意些什么。

  數(shù)據(jù)庫的兼容性應(yīng)該是數(shù)據(jù)庫設(shè)計(jì)應(yīng)該重視的一個(gè)問題,因?yàn)橛袝r(shí)候客戶存在已經(jīng)在用的數(shù)據(jù)庫,并且不希望同時(shí)維護(hù)兩個(gè)數(shù)據(jù)庫,這樣的話兼容多種數(shù)據(jù)庫還能成為產(chǎn)品的一個(gè)賣點(diǎn)。

  作到數(shù)據(jù)庫的兼容性關(guān)鍵是遵守標(biāo)準(zhǔn)用法。

  1、 遵守標(biāo)準(zhǔn)用法,盡量不使用某種數(shù)據(jù)庫特有的用法。

  如msyql的‘`’符號(hào)的用法,

  再比如,很多人有這種用法,在使用oracle開發(fā)的時(shí)候創(chuàng)建sequence,往表中插數(shù)據(jù)之前先SELECT seq.nextval FROM DUAL;,然后把查詢得到的值作為value插入表中,這種用法沒法適應(yīng)沒有sequence的數(shù)據(jù)庫,每個(gè)數(shù)據(jù)庫都有自動(dòng)增長型的用法,如果需要使用就應(yīng)該完全地使用。

  再舉個(gè)例子,不同的數(shù)據(jù)庫對分頁查詢作了擴(kuò)展,postgresql有offset,limit,oracle就沒有。

  2、 避免數(shù)據(jù)庫大小寫敏感的問題。

  選擇數(shù)據(jù)庫表名和字段名采用大寫還是小寫,并且在數(shù)據(jù)庫的設(shè)計(jì)和編碼過程中完全統(tǒng)一。

  3、 保留字。

  要求數(shù)據(jù)庫設(shè)計(jì)者盡量不使用保留字作表名和字段名。也有很多人有這種用法,在表名和字段名前加‘_’,像這樣:create table _tablename ( _id integer)。這樣永遠(yuǎn)不會(huì)出現(xiàn)保留字引起的問題。

安徽新華電腦學(xué)校專業(yè)職業(yè)規(guī)劃師為你提供更多幫助【在線咨詢
国产精品一区二区精品_久久小视频_天堂va在线观看_99久久夜色精品国产亚洲96_日本手机在线视频_av成人免费
<button id="0mgmq"><pre id="0mgmq"></pre></button>
  • <tr id="0mgmq"></tr>
  • <abbr id="0mgmq"><source id="0mgmq"></source></abbr> <button id="0mgmq"></button>
  • 中文字幕剧情在线观看一区| 日韩欧美一区二区视频在线播放| 美女日韩在线中文字幕| 国产一区二区视频在线免费观看 | 国产日韩欧美一区二区| 日韩经典在线视频| 欧美亚洲视频| 午夜久久99| 久久综合福利| 懂色中文一区二区三区在线视频| 亚洲成人资源| 亚洲精品tv久久久久久久久| 九色91在线视频| 99热国产免费| 亚洲综合社区| 人偷久久久久久久偷女厕| 亚洲欧美久久久| 中文字幕成人一区| 青娱乐国产91| 高清视频一区| 狠狠色伊人亚洲综合网站色| 精品欧美日韩在线| 噜噜噜91成人网| 国产伦精品一区二区三区四区免费 | 福利视频一区二区三区| 亚洲国产精品一区二区第四页av| 久久精品国产第一区二区三区最新章节| 中文字幕人成一区| 亚洲v国产v| 日本成人黄色| 亚洲丰满在线| 日本在线高清视频一区| 欧美精品与人动性物交免费看| 久久99精品国产99久久| 91精品国产高清久久久久久91裸体 | 亚洲一区二区三区色| 91久久亚洲| 国产精品久久九九| 96成人在线视频| 久中文字幕一区| 激情小说网站亚洲综合网| 国产精品9999久久久久仙踪林| 久久天天狠狠| 久久久综合亚洲91久久98 | 51国偷自产一区二区三区 | 国产精品尤物| 国产精品.com| 久久av一区二区三区漫画| 亚洲欧洲在线一区| 激情另类综合| 老色鬼久久亚洲一区二区| 成人免费在线看片| 欧美激情第六页| 制服诱惑一区| 国产日本精品| 国产久一道中文一区| 亚洲春色综合另类校园电影| 欧美激情一区| 国产伦精品一区二区三区视频黑人| 99久久精品无码一区二区毛片 | 先锋影音日韩| 国产在线观看一区| 久久精品国产第一区二区三区最新章节 | 精品999在线观看| 欧美欧美全黄| 操一操视频一区| 欧美一级爱爱| 国产一区二区三区的电影 | 国产欧美日韩亚洲一区二区三区| av一区和二区| 欧美一区二区| 国产乱子伦精品| 欧美日韩一区二区视频在线| 久久综合给合久久狠狠色| 日韩av电影免费在线| 国产日韩欧美一区二区三区在线观看 | 欧美精品亚洲精品| 国产日韩综合| 亚洲在线观看一区| 7777精品久久久大香线蕉小说| 欧美凹凸一区二区三区视频| 一区二区三区高清视频在线观看| 欧美一级片免费观看| 91亚色免费| 伊人成人网在线看| 清纯唯美一区二区三区| 欧美一级专区| 亚洲第一黄网| 亚洲日本精品一区| 国产在线欧美日韩| 亚洲欧美大片| 午夜精品久久久久99热蜜桃导演 | 久久一区二区三区欧美亚洲| 国产亚洲毛片| 黄色国产精品| 一区二区三区我不卡| 狠狠干一区二区| 91免费版黄色| 亚洲欧美日韩另类精品一区二区三区 | 2020国产精品久久精品不卡| 亚洲一级二级| 欧美精品综合| 中文字幕一区二区三区四区五区| 麻豆精品视频| 久久免费一区| 国内精品**久久毛片app| 欧美专区一区二区三区| 日韩香蕉视频| 亚洲一本视频| 影音先锋亚洲电影| 亚洲无玛一区| 伊人久久亚洲美女图片| 欧美日本亚洲| 国产综合自拍| 欧美成人免费在线| 欧美成人中文| 亚洲欧美综合一区| 国一区二区在线观看| 欧美日韩理论| 亚洲小说欧美另类婷婷| 亚洲国产午夜| 国产欧美二区| 久久精品国产第一区二区三区最新章节 | 国产精品sss| 国产一区二区中文字幕免费看| 国产高清在线一区二区| 精品久久久久久综合日本| 黑人巨大精品欧美一区二区小视频| 国产精品播放| 欧美高清一区二区| 在线日韩av永久免费观看| 欧美精品啪啪| 国产欧美一区二区色老头 | 四虎永久国产精品| 亚洲欧洲久久| 亚洲国产黄色| 51国产成人精品午夜福中文下载 | 欧美主播一区二区三区美女 久久精品人| 精品久久久久久亚洲| 欧美精品一区三区在线观看| 一区二区三区电影| 亚洲精品日本| 国产伦精品一区二区三区四区免费| 精品视频一区在线| 中文字幕日韩精品一区二区| 一本色道精品久久一区二区三区| 91在线播放视频| 香蕉久久免费影视| 国产亚洲精品v| 美脚丝袜一区二区三区在线观看| 中文字幕一区二区三区四区五区| 日韩视频一区| 精品乱子伦一区二区三区| 亚洲精品一区二区三区av| 亚洲国产免费看| 国产在线欧美日韩| 欧美日韩亚洲免费| 91青青草免费在线看| 欧美日本韩国国产| 亚洲久久一区| 日本免费高清一区二区| 在线欧美日韩| 欧美激情第六页| 亚洲一区二区三区精品在线观看| 久久久久天天天天| 99亚洲伊人久久精品影院红桃| 精品国产乱码一区二区三区四区 | 一区二区三视频| 亚洲深夜av| 天堂一区二区三区| 亚洲欧美日韩综合一区| 亚洲欧美精品在线观看| 久久久久综合| 欧美成人日韩| 国产厕所精品在线观看| 国产精品hd| 精品久久久久久中文字幕动漫| 禁久久精品乱码| 免费h精品视频在线播放| 亚洲黄色一区| 亚洲综合网中心| 国产成人精品日本亚洲11| 亚洲精选91| 一区二区三区三区在线| 国产91精品一区二区绿帽| 亚洲第一毛片| 在线观看一区欧美| 精品人伦一区二区三区 | 国产精品裸体一区二区三区| 视频在线一区二区三区| 成人av资源网| 在线视频精品| 欧美日韩在线一区二区三区| 蜜桃精品久久久久久久免费影院| 制服诱惑一区二区| 欧美三级第一页| 神马影院午夜我不卡| 国产精品三区在线| 久久亚洲午夜电影| 亚洲黄页一区|