mysqlデータストアプロセスパラメータの実例
MySQL記憶プロセスパラメータは、3つのタイプがあります。in、out、inout。それぞれどんな役割と特徴がありますか?
一、MySQL格納プロセスパラメータ(in)
MySQL格納プロセス「in」パラメータ:C言語の関数パラメータの値伝達と類似しており、MySQL記憶プロセスの内部ではこのパラメータが修正されるかもしれないが、inタイプパラメータの修正は、使用者にとっては見えない(not visible)。
二、MySQL格納プロセスパラメータ(out)
MySQL格納プロセス「out」パラメータ:記憶プロセス内部から調整者に値を転送します。記憶プロセスの内部では、このパラメータの初期値はnullであり、プロシージャーが記憶プロセスパラメータに値を設定しているかどうかに関わらず。
三、MySQL格納プロセスパラメータ(inout)
MySQL格納プロセスinoutパラメータはoutと同様であり、記憶プロセスの内部から調整者に値を送ることができる。違いは、変調者は、inoutパラメータを介して記憶プロセスに値を伝達することもできる。
以上の例を通して、MySQL格納プロセスにデータを転送するだけであれば、「in」タイプのパラメータを使用します。MySQL記憶プロセスから値を返すだけなら、「out」タイプのパラメータを使用する。もしデータをMySQL格納プロセスに転送する必要があるなら、まだいくつかの計算を経てから私たちに伝えます。この時は、「inout」タイプのパラメータを使います。
締め括りをつける
以上がmysqlデータストアプロセスのパラメータ例について詳しく説明した内容の全部です。MySQLを理解するのに役に立つと思います。興味のある方は引き続き当駅を参照してください。MySQLに記憶されている日時タイプの選択問題を解析します。、MySQL宣言変数と格納プロセスの分析など、何か問題があったらいつでもメッセージを残してください。友達のサポートに感謝します。
一、MySQL格納プロセスパラメータ(in)
MySQL格納プロセス「in」パラメータ:C言語の関数パラメータの値伝達と類似しており、MySQL記憶プロセスの内部ではこのパラメータが修正されるかもしれないが、inタイプパラメータの修正は、使用者にとっては見えない(not visible)。
drop procedure if exists pr_param_in;
create procedure pr_param_in
(
in id int -- in MySQL
)
begin
if (id is not null) then
set id = id + 1;
end if;
select id as id_inner;
end;
set @id = 10;
call pr_param_in(@id);
select @id as id_out;
mysql> call pr_param_in(@id);
+----------+
| id_inner |
+----------+
| 11 |
+----------+
mysql> select @id as id_out;
+--------+
| id_out |
+--------+
| 10 |
+--------+
ユーザー変数@idの着信値は10で、格納プロセスを実行した後、プロセス内の値は11であることが確認されます。inner)しかし、外部変数の値は依然として:10(id_out)二、MySQL格納プロセスパラメータ(out)
MySQL格納プロセス「out」パラメータ:記憶プロセス内部から調整者に値を転送します。記憶プロセスの内部では、このパラメータの初期値はnullであり、プロシージャーが記憶プロセスパラメータに値を設定しているかどうかに関わらず。
drop procedure if exists pr_param_out;
create procedure pr_param_out
(
out id int
)
begin
select id as id_inner_1; -- id null
if (id is not null) then
set id = id + 1;
select id as id_inner_2;
else
select 1 into id;
end if;
select id as id_inner_3;
end;
set @id = 10;
call pr_param_out(@id);
select @id as id_out;
mysql> set @id = 10;
mysql>
mysql> call pr_param_out(@id);
+------------+
| id_inner_1 |
+------------+
| NULL |
+------------+
+------------+
| id_inner_3 |
+------------+
| 1 |
+------------+
mysql> select @id as id_out;
+--------+
| id_out |
+--------+
| 1 |
+--------+
ユーザー定義変数@idを10として設定していますが、@idを記憶プロセスに転送した後、記憶プロセスの内部では、idの初期値は常にnull(id_u u)となります。inner.1)最後のid値(id_u)out=1)使用者に回送する。三、MySQL格納プロセスパラメータ(inout)
MySQL格納プロセスinoutパラメータはoutと同様であり、記憶プロセスの内部から調整者に値を送ることができる。違いは、変調者は、inoutパラメータを介して記憶プロセスに値を伝達することもできる。
drop procedure if exists pr_param_inout;
create procedure pr_param_inout
(
inout id int
)
begin
select id as id_inner_1; -- id
if (id is not null) then
set id = id + 1;
select id as id_inner_2;
else
select 1 into id;
end if;
select id as id_inner_3;
end;
set @id = 10;
call pr_param_inout(@id);
select @id as id_out;
mysql> set @id = 10;
mysql>
mysql> call pr_param_inout(@id);
+------------+
| id_inner_1 |
+------------+
| 10 |
+------------+
+------------+
| id_inner_2 |
+------------+
| 11 |
+------------+
+------------+
| id_inner_3 |
+------------+
| 11 |
+------------+
mysql>
mysql> select @id as id_out;
+--------+
| id_out |
+--------+
| 11 |
+--------+
結果から、@id(10)を記憶プロセスに転送した後、記憶プロセスは最後に計算結果値11(id_u)を計算します。inner.3)転用者に回送する。MySQL格納プロセスinoutパラメータの挙動はC言語関数の参照伝達値と類似している。以上の例を通して、MySQL格納プロセスにデータを転送するだけであれば、「in」タイプのパラメータを使用します。MySQL記憶プロセスから値を返すだけなら、「out」タイプのパラメータを使用する。もしデータをMySQL格納プロセスに転送する必要があるなら、まだいくつかの計算を経てから私たちに伝えます。この時は、「inout」タイプのパラメータを使います。
締め括りをつける
以上がmysqlデータストアプロセスのパラメータ例について詳しく説明した内容の全部です。MySQLを理解するのに役に立つと思います。興味のある方は引き続き当駅を参照してください。MySQLに記憶されている日時タイプの選択問題を解析します。、MySQL宣言変数と格納プロセスの分析など、何か問題があったらいつでもメッセージを残してください。友達のサポートに感謝します。