2

我创建了一个过程,如果输入等于 0,该过程将抛出一个 SQLException 并带有错误消息“dwa”。

CREATE PROCEDURE enter_the_dragon(test INT)

BEGIN

  DECLARE test_error CONDITION FOR SQLSTATE '42123';

  IF test = 0 THEN

    SIGNAL test_error
      SET MESSAGE_TEXT = 'dwa';

  END IF;

END;

我知道 SQLSTATE 值“00000”意味着没有错误,以“01”开头的 SQLSTATE 是一个警告。这是否意味着每一个不与这两条规则冲突的 SQLSTATE 都是错误的?
考虑到这些规则,SQLSTATE 上还有其他规则吗?格式?或者我可以自由创建自己的 SQLSTATE(例如 01123(警告)等)?

4

1 回答 1

3

有同样的问题,看看:http ://dev.mysql.com/doc/refman/5.5/en/signal.html

='00'(成功)

='01'(警告)

='02'(未找到)

> '02'(例外)

于 2013-11-26T14:25:18.383 回答