SQL SERVER 到 MYSQL 迁移存储过程代码改写详细对照表
来源:互联网 发布:古玩农村收藏淘宝网 编辑:程序博客网 时间:2024/04/28 17:29
这次面临服务器对不同操作系统迁移,我全力支持迁移工作。
一直做c++游戏服务端,对类似规模迁移全然没实战经验,踏错一步就是万丈深渊。程序代码的迁移比较有信心,数据库感觉有点烦银。经过一两周折腾,小心翼翼把“数据库全功能”成功导入了mysql(5.1.40),并且把程序底层调用接口相应改好。测试顺利通过,长呼一口气擦擦汗吧。这次迁移最头疼的存储过程的批量迁移,收集资料总结两个数据库的存储过程语法的差异,反复修改迁移脚本,终于成功了。
转结构、数据都可以用工具比较完美的迁移,没有找到工具可以完美转移存储过程,由于存储过程量较大,所以选择手动写脚本工具!可是并不顺利,不兼容的语法把写工具的工作变得复杂。
这次回忆下碰到比较多的不兼容语法,基本找到等效的替代办法,记性不好写出来方便以后查看
set ANSI_NULLS ONset QUOTED_IDENTIFIER ON
#可以无视
GO
#可以无视句末加分号
ALTER PROCEDURE [dbo].[XXX]
CREATE PROCEDURE `XX`.`XXX`
@A INT,@B INT OUTPUT,@C VARCHAR(255),@D DATETIME,@E DECIMAL(8,2),@F BIT,@G FLOAT,...
IN A INT,OUT B INT,IN C VARCHAR(255)/*OR TEXT*/,IN D DATETIMEIN E DECIMAL(8,2),IN F BOOL,IN G FLOAT,...放到as以后
declare _date TYPE放到begin以后
declare _date TYPE;
RETURN X#有的情况可以直接输出。
#最好加一个out X做返回值,不过程序那边得改动底层接口
RETURN ;
ABC:BEGIN... LEAVE ABC;...END
SELECT @X = A FROM XXX WHERE B = NULL
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";SELECT A FROM XXX WHERE B = NULL INTO @X;
IF conditionBEGIN...ENDELSE IF conditionBEGIN...ENDELSEBEGIN...END
IF (condition)THEN...ELSEIF (condition) #不能有空格THEN...ELSE...END IF;
@@ROWCOUNT
ROW_COUNT() #写FOUND_ROWS() #读
datediff
#参数不一样,且需要转成时间串。#具体google一下datediff sqlserver和datediff mysqldatediff
delete `XXX`
TRUNCATE TABLE `XXX`;#为了删除数据,不完全等效,用TRUNCATE重置了整个表,比如自增量
DBCC CHECKIDENT (`XXX`,reseed,1)
ALTER TABLE `XXX` AUTO_INCREMENT =1 ROW_FORMAT = COMPACT;--#
--...... #这里不是省略
弄好后“mysqldump -uXXX -pXXX -R -d -x --default-character-set=utf8 --opt --extended-insert=false --skip-triggers dbo > /data/dbo.sql”备份一下,不带数据的,带数据去掉“-d”
还原"mysql -uXXX -pXXX -f --default-character-set=utf8 dbo < /data/dbo.sql" , 出现“Unknown character set: 'gbk'”类似的错误,说明缺字符集,或者你能保证数据是utf8,就搜一下sql文件注释(没错就在注释)里的gbk替换成utf8就行了
- SQL SERVER 到 MYSQL 迁移存储过程代码改写详细对照表
- sql server存储过程详细代码
- mysql 迁移到 sql server
- mysql + sql Server 存储过程
- SQL Server 迁移数据到MySQL
- SQL Server 迁移数据到MySQL
- SQL server 数据迁移到mysql
- SQL Server数据迁移到MySQL
- SQL Server 迁移数据到MySQL
- SQL Server 迁移数据到MySQL
- SQL Server数据迁移到MySQL
- sql server数据迁移到mysql
- KETTLE整库迁移方案(SQL server迁移至Mysql,迁移过程自动创建表结构)
- SQL Server导出表到EXCEL文件的存储过程
- SQL Server导出表到EXCEL文件的存储过程
- 黑马程序员--SQL Server 建库、表、存储过程代码实例
- SQL server分页存储过程代码(ZT)
- SQL Server 分页查询存储过程代码
- 网站架构(页面静态化,图片服务器分离,负载均衡)方案全解析
- Objective-C Base64编解码
- IEBlog:拥抱WebSockets
- 编译错误syntax error : missing ';' before 'type'
- Ubuntu下有几个C/C++的IDE,现在来对做一下简单的比较
- SQL SERVER 到 MYSQL 迁移存储过程代码改写详细对照表
- VC获得桌面工作区与任务栏大小(宽度与高度)
- iphone开发常用代码
- 十年WEB设计回顾
- 开放源码嵌入式数据库 SQLite 简介
- 使用PagedDataSource类实现分页
- 定义模式
- UML类图
- MyEclipse8.5集成Android环境