web-dev-qa-db-ja.com

ストアドプロシージャにメッセージを表示する

ストアドプロシージャからのメッセージを表示するにはどうすればよいですか?

行が存在するかどうかを示すメッセージを表示するための正しい構文は何ですか?

SQL Serverでは、WORKBENCHでメッセージバットを表示することがPRINTです...

CREATE PROCEDURE `new_proced` (
    in myid     int(3)
)
BEGIN
    if not exists (select id from table where id = myid)
then
    show message 'Row no exists';
else
    show message 'Row exists';
end if;
END
5
Igor

なぜあなたがそのようなことをしたいのかは完全にはわかりませんが、次のようなことをすることができます:...

then
  select 'YOUR MESSAGE HERE'  
else
  select 'YOUR OTHER MESSAGE HERE'
end if

または、1または0を選択して、少し良いかもしれません...

19
Andrew

MySQLにはOracleのような適切な出力ステートメントがありません。DBMS_OUTPUT.PUT_LINEがあります。したがって、コンソールにメッセージを表示するには、次のように[〜#〜] select [〜#〜]ステートメントを使用できます。

SELECT message;

例:SELECT "WELCOME TO MySQL";

1
Y. Kiran Kumar

MySQLのストアドプロシージャからのデバッグ情報には、これを行うことができる以下のオプションがあります。

1.外部からファイルに書き込む:

outfile '/temp/brajesh.txt'へのログインとして「your_message」を選択します。

2. selectコマンドを使用してメッセージを出力します。

「result_message」を選択します。

3. selectコマンドを使用して、メッセージ付きの追加情報を出力します。

select concat( "Hello!:"、result);

4.追加テーブルtempを作成し、それにすべてのメッセージをプッシュします。

temp select concat(result);に挿入します。

drop procedure if exists display_name_procedure;
delimiter //
create procedure display_name_procedure(IN name_val varchar(65))
begin
declare result varchar(65);
set result := display_name_function(name_val);

create table if not exists temp (name_val varchar(65) not null);
insert into temp select concat(result);
select "penguin" as log into outfile '/temp/brajesh.txt';
select concat("Hello ! :", result);

end//

delimiter ;
0
Brajesh