存储过程里面如何读取错误信息?

xieyueqing 2010-10-28 04:17:14
想在存储过程里面读取错误号和错误信息,放到变量里面,用什么函数??

找了半天也没找到,SHOW ERRORS只能看,不能放到变量里面。
...全文
88 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
ACMAIN_CHM 2010-10-28
  • 打赏
  • 举报
回复
存储过程中没有办法,
你或者可以改写MYSQL的源代码以添加这个功能。或者直接在C或者其它程序中写代码,可以得到错误返回值。
zuoxingyu 2010-10-28
  • 打赏
  • 举报
回复
很多开发的就写写基本的INSERT,SELECT,UPDATE就完事了。不会存储过程也不稀奇。
存储过程在MYSQL里面,也是5以后才有的好像。
xieyueqing 2010-10-28
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 zuoxingyu 的回复:]
ERROR_MESSAGE()
没有这东西。你枚举出常见的错误就差不多了。
[/Quote]

谢谢,我刚开始玩mysql,不熟啊。。

Mysql是不是不常用存储过程,我一同事以前用mysql的,居然不会写存储过程。。
zuoxingyu 2010-10-28
  • 打赏
  • 举报
回复
ERROR_MESSAGE()
没有这东西。你枚举出常见的错误就差不多了。
xieyueqing 2010-10-28
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 zuoxingyu 的回复:]
引用 5 楼 wwwwa 的回复:
MYSqL没有RAISERROR之类的语句,只有用手工方法


一个个去枚举。。
[/Quote]
太可怕了~
xieyueqing 2010-10-28
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 zuoxingyu 的回复:]
http://blog.chinaunix.net/u3/116107/showart.php?id=2349490

看看这个。
存储过程的异常处理。
[/Quote]
drop procedure if exists p1;
create procedure P1()
begin
declare exit HANDLER FOR SQLSTATE '23000' insert into Error(Error_ID,Error_SQLSTATE,Error_Describe,Error_time) values(1062,'23000','键%d的重复条目',now());
declare exit HANDLER FOR SQLSTATE '21S01' insert into Error(Error_ID,Error_SQLSTATE,Error_Describe,Error_time) values(1136,'21S01','列计数不匹配行%ld上的值计数',now());

rollback;
start transaction;
insert into ta values(6,'张三',now());
insert into ta values(7,'李四',now());
commit;
end;

这个不错,问题是错误是未知的,我不能把所有的错误都列出来. 有好办法么?

类似SQL Server里面的 select @msg =ERROR_MESSAGE() 。
zuoxingyu 2010-10-28
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 wwwwa 的回复:]
MYSqL没有RAISERROR之类的语句,只有用手工方法
[/Quote]

一个个去枚举。。
WWWWA 2010-10-28
  • 打赏
  • 举报
回复
MYSqL没有RAISERROR之类的语句,只有用手工方法
ACMAIN_CHM 2010-10-28
  • 打赏
  • 举报
回复
目前没有办法
zuoxingyu 2010-10-28
  • 打赏
  • 举报
回复
http://blog.chinaunix.net/u3/116107/showart.php?id=2349490

看看这个。
存储过程的异常处理。
rucypli 2010-10-28
  • 打赏
  • 举报
回复
DECLARE CONTINUE HANDLER?
rucypli 2010-10-28
  • 打赏
  • 举报
回复
try catch?

56,679

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧