2017-01-28 4 views
1

MySQL(5.7)でフォーマットされたエラーメッセージでエラーをスローする方法を解明しようとしています。MySQLエラーでフォーマットするエラーメッセージ

// SOME PROCEDURE 
begin 
declare something INT; 
start transaction; 
    call getsomething(something); // sets something to data 
    if something is NULL then 
     rollback; 
     SIGNAL SQLSTATE '45000' 
      SET MESSAGE_TEXT = 'Something %d not found!', MYSQL_ERRNO = 1001; 
    end if; 
commit; 
end 

エラーメッセージの作成時に「何か」変数を使用するにはどうすればよいですか?

+1

Mybe that help https://dev.mysql.com/doc/refman/5.5/en/signal.html – Sami

答えて

1

CONCAT()とそのメッセージを格納するローカル変数についてはどうですか?

SET MESSAGE_TEXT = CONCAT(something, 'not found!'); 

working example

+0

既に試してみましたが、動作しません(不正な構文)。 – Ernio

1
// SOME PROCEDURE 
begin 
declare something INT; 
declare error_msg VARCHAR(255); 
start transaction; 
    call getsomething(something); // sets something to data 
    if something is NULL then 
     rollback; 
     set error_msg = CONCAT('Something not found!', something); 
     SIGNAL SQLSTATE '45000' 
      SET MESSAGE_TEXT = error_msg, MYSQL_ERRNO = 1001; 
    end if; 
commit; 
end 

CONCATを使用して@Samisコメントと再試行の後に - 作品の上に。

+0

@エミオ私は自分の答えを編集していました(y) – TRiNE

関連する問題