数据库迁移mysql到sqlserver_数据库迁移(sqlserver至mysql)

最近项目在做一个大迁移,项目从dobbo项目迁至成springcloud项目,同时内部也有一个很大的转变,从架构开始一整个的转型,而我目前负责的是一个数据库的转型。

就如标题所说,sqlserver转至成mysql。其实sql的转变区别不大,更何况是sqlserver和mysql,他们的相似度大约有80%了吧。可是毕竟是个大项目,怎么可能只有那些普通的sql语句呢是吧。

那么所说一下目前存在的几个需要改动的地方:

其一:一个很简单的语句,专业术语喜欢叫做分页,懂了吧

在sqlserver里面是写在 select from 之中的。比如 查询 A表所有

select * from A,那么只要取前面几个的话就是 select top 1 * from A ,取第一个

而在mysql中它却不是这样的,它的关键字是limit,同样

select * from A limit 1

这两句效果一样但是语句不一样,这就是一个小改变。

其二:里面的函数库,虽然说函数库基本都是一样的(目前我没看到两个有不同的函数库哈),但是呢函数库一样语法可就不一样啦。说一下一对双胞胎?cast和Convert,首先说cast

cast在sqlserver中它可以作为

cast('值' , "数据类型")

或者

cast('值' as "数据类型")

但是在mysql中它只有一个语法那就是 cast('值' as "数据类型")

下面说到另一个Convert,刚刚是不是提到双胞胎了,对,它的作用和cast很相似,也是替换类型的,或者说类型转换

Convert在sqlserver中和在mysql中差距有一点大的样子,首先sqlserver可以使用varchar类型,但是在mysql中varchar是会报错的,它只能存在char类型,别看varchar和char类型都一样是字符类型,但是varchar它中文也算一个占位,英文也算一个占位,而char可不一样,char的中文算两个,空间完全不一样了。

而且我发现,它的语法还有一些问题比如sqlserver中是 Convert(varchar(100),'字段',120),而mysql却是 Convert('字段',char(100)),语法这样来说还是有些差距的。

以上是我目前遇到的一些问题,之后会继续转变,如果有一些新的我会继续更新出来,敬请期待。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值