MySQL存储过程如何产生异常?例如:
CREATE PROCEDURE SALES()
BEGIN
STATEMENT...
STATEMENT...
STATEMENT...
IF (PRICE >= 500) THEN
/** THROWS AN EXCEPTION....
WHAT DO TO STOP THE PROCEDURE. **/
END IF;
STATEMENT...
STATEMENT...
STATEMENT...
END;
在 MySQL 中,我认为没有办法在存储过程中引发异常,但我可以通过从不存在的表中进行选择来强制发生错误。例如:
IF (PRICE > 500) THEN
/*throw the error here*/
SELECT * FROM price_greater_than_500_in_throw_exception;
END IF;
有更优雅的方式吗?
Thanks.
从 MySQL 5.5 开始你可以使用SIGNAL http://dev.mysql.com/doc/refman/5.5/en/signal.html and RESIGNAL http://dev.mysql.com/doc/refman/5.5/en/resignal.html用于错误处理。在此之前,MySQL 没有办法处理错误。唯一的方法是运行错误的查询(例如插入不存在的表)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)