C++ 技术中心

   :: 首页 :: 联系 ::  :: 管理
  160 Posts :: 0 Stories :: 87 Comments :: 0 Trackbacks

公告

郑重声明:本BLOG所发表的原创文章,作者保留一切权利。必须经过作者本人同意后方可转载,并注名作者(天空)和出处(CppBlog.com)。作者Email:coder@luckcoder.com

留言簿(27)

搜索

  •  

最新随笔

最新评论

评论排行榜

/**mySql中是否能有SQLserver的@@error变量呢,或者如c#中的try catch语法呢。  

答案是肯定的,实例代码如下:*
*/
  


DROP PROCEDURE IF EXISTS sp_call_jobs;  

CREATE PROCEDURE sp_call_jobs()  

     
NOT DETERMINISTIC  

   SQL SECURITY DEFINER  

     COMMENT 
'' 

 
BEGIN 

 
declare _row,_err,_count int default 0;  

 
DECLARE CONTINUE  HANDLER FOR SQLEXCEPTION,SQLWARNING,NOT FOUND set _err=1;  

while _row<3 DO  

   START 
TRANSACTION;  

      
insert into t1(cond_val)values(null);  

  
COMMIT;  

  
if _err=1 then 

    
set _count=_count+1;  

  
end if;  

  
set _row=_row+1;  

 
end while;  

 
select _count;  

 
END;  

     

/**语句:  

DECLARE CONTINUE  HANDLER FOR SQLEXCEPTION,SQLWARNING,NOT FOUND set _err=1;  

 作用是当遇到SQLEXCEPTION,SQLWARNING,NOT FOUND 错误时,设置_err=1并执行CONTINUE操作,即继续执行后面的语句。  

 这就与c#中的try catch语法很像。  

而且在执行可能出错的语句的时候我们用事务语句:START TRANSACTION; …… COMMIT; 可以保证完整性。  

 *
*/
 
posted on 2012-05-06 14:41 C++技术中心 阅读(1481) 评论(0)  编辑 收藏 引用 所属分类: MYSQL

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理