Welcome 微信登录

首页 / 数据库 / MySQL / Oracle 迁移至MySQL部分语句的转换

前几天把系统从Oracle往mysql上迁移,很多的语句是比较简单的,就是一些函数的修改如to-date等但是也有几个比较棘手的,这里记录下第一、row_number() over(partition by  首先要了解下oracle中这个函数的用法,看个例子select t.*,row_number() over(partition by t.owner order by y.createDate desc) rn from test t这个语句的意思就是,把test这个表的数据按照owner 分组并且给每个分组的里面的数据加上一个序列号,数据格式如下id     name      owner createDate  rn1       aa            001                              12          bb         001                              23          cc            001                           34          dd            002                           15         ee         002                              26            ff            003                             1数据搞得不太正规,但是应该能够看懂它的意思吧,但是在mysql中是没有这个函数的于是乎,找啊找,总算找了个解决方法,如下SELECT
    heyf_tmp.*,
    IF(@pdept=heyf_tmp.owner ,@rn:=@rn+1,@rn:=1) AS rn,
    @pdept:=heyf_tmp.owner
FROM
    (
        SELECT
            yv.*
        FROM
            test yv
        ORDER BY
            yv.owner  ,
            yv.createDate  DESC
    )
    heyf_tmp ,
    (
        SELECT
            @rn :=0 ,
            @pdept := NULL ,
            @rn:=0
    )
    aa
具体是什么意思,不是很清楚,不过先解决问题再说第二、oracle树形查询oracle树形查询现成的方法select distinct t.id as id, t.namefrom test t
                start with id=‘’
             connect by prior id = parentid但是mysql中是没有这个方法的,于是只能自己定义函数或者过程,我这里用的是过程如下CREATE PROCEDURE Pro_GetTreeList`(in pid varchar(36))
begin
 declare lev int;
 set lev=1;
 drop table if exists tmp1;   
 CREATE TABLE tmp1(id VARCHAR(40),name varchar(50),parentid varchar(40) ,levv INT);   
 INSERT tmp1 SELECT id,name,parent_id,1 FROM `test` WHERE parent_id=pid;   
  while  row_count()>0
    do   set lev=lev+1;   
   INSERT tmp1 SELECT t.id,t.name,t.parent_id,lev from testt join tmp1 a on t.parent_id=a.id AND levv=lev-1;--查出子节点
  end while ;   
  INSERT tmp1 SELECT id,name,parent_id,0 FROM test WHERE id=pid; --查出当前节点
end
这个存储过程应该都能看懂吧,就不做多解释了更多Oracle相关信息见Oracle 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=12HBase自带压力测试Web系统从Oracle迁移至MySQL相关资讯      Oracle转MySQL 
  • Web系统从Oracle迁移至MySQL  (02/27/2014 12:29:51)
本文评论 查看全部评论 (0)
表情: 姓名: 字数

版权所有©石家庄振强科技有限公司2024 冀ICP备08103738号-5 网站地图