9

私はmysqlv5.1.48と赤のhttp://dev.mysql.com/doc/refman/5.5/en/signal.htmlを使用しています。しかし、コード

DELIMITER $$
CREATE PROCEDURE `CoreRaiseError`()
BEGIN
  SIGNAL SQLSTATE '45000'
      SET MESSAGE_TEXT = 'An error occurred', MYSQL_ERRNO = 1001;
END$$

上げる

SQLエラー1064:SQL構文にエラーがあります。'SQLSTATE' 45000'の近くで使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください。

SIGNALがキーワードになり始めたのはどのバージョンからですか?以前のバージョンのmysqlで例外を発生させるにはどうすればよいですか?

ありがとうございました。

4

1 に答える 1

12

MySQLバージョン5.1のマニュアルに記載されているように:

条件に関連する他のステートメントは、、、SIGNALおよびRESIGNALですGET DIAGNOSTICSSIGNALandステートメントはRESIGNALMySQL5.5までサポートされていません。このGET DIAGNOSTICSステートメントは、MySQL5.6までサポートされていません。

古いバージョンのMySQLでエラーを発生させるには、意図的に誤ったコマンドを発行するだけです。私はしばしばCALL存在しない手順、例えば:

CALL raise_error;
于 2012-05-16T11:07:08.953 に答える