如果先前的选择成功,则MySQL提升错误无法正常工作

时间:2016-02-29 18:56:49

标签: mysql sql stored-procedures error-handling

我正在尝试生成一个测试,以便在给定表中的特定COUNT时引发错误。该错误永远不会上升,而且似乎是SELECT的{​​{1}}造成的。

以下COUNT语句成功失败(如果有意义):

MySQL

但是,如果我添加一个简单的DROP PROCEDURE IF EXISTS Test; DELIMITER // CREATE PROCEDURE Test() BEGIN DECLARE C INT; SELECT 1 INTO C; IF(C != 0) THEN SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Error!'; END IF; END; // DELIMITER ; CALL Test(); ,它将永远不会失败(即使满足提高错误的条件):

SELECT

只是想知道是否有解决这个问题的工作,或者DROP PROCEDURE IF EXISTS Test; DELIMITER // CREATE PROCEDURE Test() BEGIN DECLARE C INT; SELECT 1; <-- This is the added select. SELECT 1 INTO C; IF(C != 0) THEN SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Error!'; END IF; END; // DELIMITER ; CALL Test(); 是不可避免的。

提前致谢!

1 个答案:

答案 0 :(得分:0)

因此,在查看此内容之后,只有在SequelPro应用上尝试时才会发生这种情况。

我已直接在命令行和MySQLWorkbench上完成了一些测试,并且两者都按预期工作(如果需要,无论是否遇到成功的SELECT,总是会引发错误)。

现在关闭这个问题。