成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

MySQL數(shù)據(jù)庫(kù)移植總結(jié)

開發(fā) 開發(fā)工具
MySQL是一種關(guān)聯(lián)數(shù)據(jù)庫(kù)管理系統(tǒng),它將數(shù)據(jù)保存在不同的表中,而不是將所有數(shù)據(jù)放在一個(gè)大倉(cāng)庫(kù)內(nèi),這樣就增加了速度并提高了靈活性。

[[180166]]

一、前言

MySQL是一個(gè)由瑞典MySQL AB公司開發(fā)的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),目前歸屬Oracle公司旗下。MySQL是一種關(guān)聯(lián)數(shù)據(jù)庫(kù)管理系統(tǒng),它將數(shù)據(jù)保存在不同的表中,而不是將所有數(shù)據(jù)放在一個(gè)大倉(cāng)庫(kù)內(nèi),這樣就增加了速度并提高了靈活性。由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點(diǎn),一般中小型網(wǎng)站的開發(fā)都選擇MySQL作為網(wǎng)站數(shù)據(jù)庫(kù)。

考慮到MySQL的諸多優(yōu)點(diǎn),很多通訊類軟件都開始采用MySQL作為其業(yè)務(wù)數(shù)據(jù)庫(kù),前期采用Oracle或Sybase的軟件也啟動(dòng)了向MySQL數(shù)據(jù)庫(kù)移植的工作。本文基于作者近期將Sybase數(shù)據(jù)庫(kù)移植為MySQL數(shù)據(jù)庫(kù)的工作,總結(jié)了在移植過程中需要修改的主要數(shù)據(jù)庫(kù)語法及一些基本的操作MySQL的命令。

二、需要修改的數(shù)據(jù)庫(kù)語法

1.基本語法

1) 將類似select xxx from %s..tb_xxx where xxx的語法修改為select xxx from %s.tb_xxx where xxx。

2) 將類似select top N * from tb_xxx的語法(查詢前N條記錄)修改為select * from tb_xxx limit N。

3) 將獲取當(dāng)前時(shí)間的語句convert(varchar(10),getdate(),102)+' '+convert(varchar(10),getdate(),108))修改為date_format(now(),'%Y.%m.%d %T')。

4) 將類似執(zhí)行沒有輸出參數(shù)的存儲(chǔ)過程的SQL語句exec %s..pr_xxx '%s'修改為call %s.pr_xxx ('%s')。

5) 將類似執(zhí)行有輸出參數(shù)的存儲(chǔ)過程的SQL語句exec %s..pr_xxx 1, '%s', 0, 0, %d, '', %d, 0, 0修改為call %s.pr_xxx(1,'%s',0,0,%d,'',%d,0,0,@1,@2,@3,@4,@5,@6);select@1,@2,@3,@4,@5,@6。

2.在存儲(chǔ)過程中

1) 將類似drop procedure pr_xxx語句修改為drop procedure if exists pr_ xxx;語句。

2) 在類似drop procedure if exists pr_ xxx;語句之后要添加delimiter //語句。

3) 對(duì)類似存儲(chǔ)過程輸入輸出參數(shù)作如下修改:

  1. createprocedure pr_xxx 
  2.     @aaa        varchar(40), 
  3.     @bbb        varchar(10), 
  4.     @ccc        varchar(20), 
  5.     @ddd        int  out 

修改為:

  1. createprocedure pr_ xxx 
  2.        in   p_ aaa         varchar(40), 
  3.        in   p_ bbb         varchar(10), 
  4.        in   p_ ccc         varchar(20), 
  5.        out   p_ ddd        int 

4) 將類似定義的參數(shù)作如下修改:

  1. declare 
  2.         @aaa             int
  3.         @bbb             varchar(20),     
  4.         @ccc             int,          
  5.         @ddd             int,  

修改為:

  1. declare p_aaa         int
  2.        declare p_bbb         varchar(20); 
  3.        declare p_ccc         int
  4.        declare p_ddd         int

5) 將類似if @aaa = x語句修改為if p_aaa = x then語句。

6) 將類似select @aaa = x的初始化語句修改為set p_aaa = x;。

7) 將類似select @aaa=bbb from tb_xxx where ccc=yyy的語句修改為select bbb int op_aaa from tb_xxx where ccc=yyy;。

8) 將類似if語句修改如下:

  1. if xxx 
  2. begin 
  3.  
  4. end 
  5. else 
  6. begin 
  7.  
  8. end 

修改為:

  1. if xxx then 
  2. begin 
  3.  
  4. end
  5. else 
  6. begin 
  7.  
  8. end
  9. end if; 

9) 將類似獲取當(dāng)前時(shí)間的select @curtime=convert(varchar(50),getdate(),102)+''+convert(varchar(50),getdate(),108)語句修改為set p_curtime=date_format(now(),'%Y.%m.%d %T');。

10) 將類似select @curdatetime = dateadd(minute, @tzonemin, @curdatetime)語句修改為set p_curdatetime=date_add(p_curdatetime,interval p_tzonemin minute);。

11) 將return語句修改為leave pr_xxx_label;。

12) 對(duì)存儲(chǔ)過程***的end語句作如下修改:

  1. end 

修改為;

  1. end
  2. // 
  3. delimiter ; 

13) 將存儲(chǔ)過程***的print語句作如下修改:

  1. print 'create procedure:pr_xxx ok!' 

修改為:

  1. select 'create procedure pr_ xxx ok!'

14) 將類似的if語句作如下修改:

  1. if xxx 
  2. begin 
  3.  
  4. end 
  5. else if yyy 
  6. begin    
  7.  
  8. end 
  9. else if zzz 
  10. begin    
  11.  
  12. end 
  13. else 
  14. begin 
  15.  
  16. end 

修改為:

  1. if xxx then 
  2. begin 
  3.  
  4. end
  5. elseif yyy then 
  6. begin    
  7.  
  8. end
  9. elseif zzz then 
  10. begin    
  11.  
  12. end
  13. else 
  14. begin 
  15.  
  16. end
  17. end if; 

15) 將類似select @maxcnt = convert(int,@tmpstr)語句修改為set p_maxcnt=convert(p_tmpstr,signed);語句。

16) 將類似select @boxnumber = convert(varchar,@tmpstr)語句修改為set p_boxnumber=convert(p_tmpstr, char(20));語句。

17) 將類似lasttime<=dateadd(day, 0-convert(int,dayvalue), getdate())語句修改為lasttime<=concat(date_format(date_sub(now(),interval convert(dayvalue,signed) day),'%Y.%m.%d'),' ',date_format(now(),'%T'))語句。

三、一些基本的操作MySQL的命令

作者所使用的數(shù)據(jù)庫(kù)位于Linux之下,因此,本節(jié)所使用的命令均是在Linux之下運(yùn)行的。

1.啟動(dòng)MySQL

  1. xpecdmoni 

2.停止MySQL

  1. xsuperstop 

3.登錄MySQL

1)MySQL位于本機(jī)之上:

  1. mysql -uusername -p'pwd'  

(其中,username是用戶名,pwd是密碼)

2)MySQL在其它機(jī)器上:

  1. mysql -uusername -p'pwd' –h0.1.1.1-P3306 

(其中,username是用戶名,pwd是密碼,0.1.1.1是MySQL數(shù)據(jù)庫(kù)的IP,3306是端口號(hào))

4.切換數(shù)據(jù)庫(kù)

  1. use DbName; 

(其中,DbName是數(shù)據(jù)庫(kù)名)

5.退出MySQL

  1. quit;

6.執(zhí)行SQL腳本

1) MySQL位于本機(jī)之上:

  1. mysql -uusername -p'pwd' -DDbName<test.sql  

(其中,username是用戶名,pwd是密碼,DbName是數(shù)據(jù)庫(kù)名,test.sql是SQL腳本名)

2) MySQL在其它機(jī)器上:

  1. mysql -uusername -p'pwd' –h0.1.1.1 -P3306 -DDbName<test.sql   

(其中,username是用戶名,pwd是密碼,0.1.1.1是MySQL數(shù)據(jù)庫(kù)的IP,3306是端口號(hào),DbName是數(shù)據(jù)庫(kù)名,test.sql是SQL腳本名)

四、總結(jié)

在進(jìn)行數(shù)據(jù)庫(kù)移植的過程中,我們需要注意以下問題:

1.只修改必須要修改的代碼,不能更改業(yè)務(wù)邏輯。要將修改之后的代碼與修改之前的代碼進(jìn)行反復(fù)的對(duì)比,確保代碼修改的正確性。

2.要對(duì)修改之后的代碼和腳本等進(jìn)行全方位的測(cè)試,確保業(yè)務(wù)邏輯的正確性。

3.如果有某段代碼或存儲(chǔ)過程是公用的,那么只需要指定某個(gè)人修改就可以了,這樣也可以防止重復(fù)勞動(dòng)。

【本文是51CTO專欄作者周兆熊的原創(chuàng)文章,作者微信公眾號(hào):周氏邏輯(logiczhou)】

 

戳這里,看該作者更多好文

責(zé)任編輯:武曉燕 來源: csdn博客
相關(guān)推薦

2019-01-02 11:10:40

MySQL數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)設(shè)計(jì)

2017-07-12 09:20:42

SQLite數(shù)據(jù)庫(kù)移植

2019-07-11 08:45:00

MySQL數(shù)據(jù)庫(kù)緩存

2010-05-13 09:59:50

MySQL數(shù)據(jù)庫(kù)

2010-05-19 17:35:35

2012-06-20 11:17:02

MemSQL

2010-05-31 15:12:44

MySQL數(shù)據(jù)庫(kù)

2011-08-05 14:02:17

MySQL數(shù)據(jù)庫(kù)異常處理

2017-11-08 10:20:10

2010-05-24 17:42:44

MySQL數(shù)據(jù)庫(kù)

2010-05-20 17:31:17

MySQL數(shù)據(jù)庫(kù)

2011-07-19 16:36:25

Audit插件MySQL數(shù)據(jù)庫(kù)

2019-11-07 15:39:36

數(shù)據(jù)庫(kù)MySQL文章

2019-09-26 10:41:21

MySQL數(shù)據(jù)庫(kù)計(jì)數(shù)器

2019-09-16 08:28:17

Mysql數(shù)據(jù)庫(kù)binlog

2010-05-24 18:05:12

MySQL數(shù)據(jù)庫(kù)

2019-05-29 09:38:44

MySQL字符編碼數(shù)據(jù)庫(kù)

2009-01-06 11:31:34

SybaseSQL Server數(shù)據(jù)庫(kù)

2010-11-29 11:51:59

Sybase數(shù)據(jù)庫(kù)維護(hù)

2019-12-26 17:25:22

數(shù)據(jù)庫(kù)設(shè)計(jì)技術(shù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 国产一区二区三区视频在线观看 | 久久久久香蕉视频 | 91在线播 | 99精品久久久国产一区二区三 | 欧美成人猛片aaaaaaa | 中文字幕在线欧美 | 久久久久久国产精品免费免费男同 | 国产一区二区三区久久久久久久久 | 久久久久九九九女人毛片 | 天天干天天插天天 | 先锋资源网 | 国产三区视频在线观看 | 亚洲国产免费 | 国产成人精品一区二区 | 97精品国产一区二区三区 | 一区欧美 | 亚洲精品一区二区三区蜜桃久 | 亚洲va国产日韩欧美精品色婷婷 | 成在线人视频免费视频 | 久夜精品 | 欧美日韩国产欧美 | 国产精品久久久久免费 | 亚洲人a | 国产黄色网| 成人av高清在线观看 | 日韩精品在线一区 | 欧美性区| 91操操操 | 伊人久久免费视频 | 亚洲精品一区二区冲田杏梨 | 欧美a在线| 国产精品久久777777 | 国产综合精品一区二区三区 | 在线观看国产视频 | 久久美女视频 | 91精品国产综合久久久久蜜臀 | 蜜桃日韩 | 岛国av在线免费观看 | 久久久成人一区二区免费影院 | 国产精品久久久免费 | 日批免费观看 |