如何在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;
有更优雅的方式吗?
感谢。
答案 0 :(得分:15)
答案 1 :(得分:8)
这是一个如何在mysql中引发异常的示例,该异常适用于5.5及更高版本:
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Custom error';
详细信息可以在这里找到:https://dev.mysql.com/doc/refman/5.5/en/signal.html