Sybase数据库存储过程转化为Mysql数据库存储过程
来源:互联网 发布:在线crm软件 编辑:程序博客网 时间:2024/05/16 06:04
最近项目需要迁库,顺便学习了一下Sybase数据库存储过程,转化为Mysql数据库存储过程,我也算是初 学者,记录一下学习过程,若有问题还望会者不吝赐教。
注意:主要修改语法上有区别的地方,业务逻辑不可修改。
1.存储过程中使用事务时需注意,mysql的引擎有的不支持事务,如myisam引擎,此时事务没有作用;
innodb引擎是支持事务的,但要查看系统参数(autocommit)设置是否自动commit,若值为on表示事务自动提交,off表示手动去commit。
2.传入参数声明注意:mysql存储过程中,IN表示输入参数,OUT表示从存储过程内部输出参数,INOUT表示可以传入参数,也可以输出参数。
3.执行成功或失败返回值注意,sybase用return返回,mysql没有return所以需要用lable_a:标识返回,用LEAVE lable_a;返回。
4.mysql判断成功执行条数注意,判断Select得到的行数用found_rows()函数进行判断;判断Update或Delete影响的行数用row_count()函数进行判断,这里需要注意,如果Update前后的值一样,row_count则为0,而不像SqlServer里的@@rowcount或Oracle里的rowcount,只要update到行,影响的行数就会大于0,而无论update前后字段的值是否发生了变化。
5.数字库字段用到关键字注意,比如value或type,需要用 “ 符号(Esc键下边的符号)将字段括起来,否则报错。
6.sybase转为mysql时间注意,mysql中的now() 函数可直接替换sybase中的getdate() 函数。
7.语法结构注意,IF语句使用的是IF…THEN END IF的语法结构,CASE语句CASE… WHEN … THEN ELSE .. END CASE,WHILE语句WHILE…END WHILE
Sybase存储过程实例:
DROP PROCEDURE resetMOdzhangHaoPassGOCREATE PROCEDURE resetMOdzhangHaoPass @zhid numeric(19,0) in,@zhnewpass varchar(128) in,@zhpasstime datetime inASBEGIN TRAN UPDATE dzhanghaoInfo SET zhPass=@zhnewpass,zhPasstime=@zhpasstime WHERE zhid=@zhid IF @@rowcount=0 BEGIN COMMIT TRAN RETURN 1 END COMMIT TRANRETURN 0GO
修改为mysql存储过程实例
DELIMITER //CREATE PROCEDURE resetMOdzhangHaoPass(IN in_zhid NUMERIC(19,0),IN in_zhnewpass VARCHAR(128),IN in_zhpasstime DATETIME,OUT out_retcode INT)lable_a:BEGIN UPDATE dzhanghaoInfo SET zhPass=in_zhnewpass,zhPasstime=in_zhpasstime WHERE zhid=in_zhid; IF ROW_COUNT()=0 THEN SET out_retcode = 1; COMMIT; LEAVE lable_a; ELSE SET out_retcode = 0; COMMIT; LEAVE lable_a; END IF;END //
- Sybase数据库存储过程转化为Mysql数据库存储过程
- 提取SYBASE数据库存储过程
- mysql数据库存储过程
- mysql数据库存储过程
- MySql数据库存储过程
- MySQL数据库存储过程
- MYSQL数据库:存储过程学习
- MySQL---数据库存储过程入门
- MySQL数据库重命名存储过程
- mysql数据库---存储过程小记
- MySQL数据库-存储过程详解
- MySQL数据库-存储过程详解
- oracle 存储过程 转换为mysql存储过程 实例总结 (数据库有感篇一)
- 如何使用Sybase ASE数据库的扩展存储过程?
- 数据库-存储过程sybase带输入输出参数和游标功能
- Sybase(sqlanywhere)比较应用版本大小数据库存储过程
- Sybase数据库——批量插入数据存储过程
- Sybase 动态改变存储过程里查询的数据库
- 图像数据处理(1)
- 多线程编程之三:Windows线程终止与取消
- 背包问题 V3
- 图像数据处理(2)
- golang kafka client
- Sybase数据库存储过程转化为Mysql数据库存储过程
- HDU5900 QSC and Master(区间dp)
- 6月13日OPPO超人气R9派对 或有明星出席
- 我们之所以愿意围观马特•达蒙MIT的毕业演讲 是因为有几句触及灵魂
- 过去一周,你与硅谷的距离就差这些文章 | 硅谷锋向周刊
- 滴滴的公关危机 可以这么解决
- Thread的run()与start()的区别
- Eclipse远程Debug linux上的项目
- LINUX时钟修改命令