数据库迁移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)),語法這樣來說還是有些差距的。
以上是我目前遇到的一些問題,之后會繼續轉變,如果有一些新的我會繼續更新出來,敬請期待。
總結
以上是生活随笔為你收集整理的数据库迁移mysql到sqlserver_数据库迁移(sqlserver至mysql)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: iPhone 14系列有哪些机型iPho
- 下一篇: 查看mysql8日志_mysql dba