MYSQLストレージ、ストレージCreateの作成、ストレージの表示、ストレージの更新/変更、ストレージの削除、およびインスタンスの説明
1.ストレージ
ストアド・プロシージャ(Stored Procedure)は、外部プログラムが呼び出すためにデータベースに複雑なプログラムを格納するデータベース・オブジェクトです.
ストレージ・プロシージャは、特定の機能のSQL文セットを完了するためにコンパイルされて作成され、データベースに保存されます.ユーザーは、ストレージ・プロシージャの名前を指定し、必要に応じてパラメータを指定することで実行を呼び出すことができます.
ストレージプロセスは思想的に簡単で、データベースSQL言語レベルのコードパッケージと再利用です.
ストレージの作成
1)ウィザードの作成
対応するデータベースの下にある関数を選択して右クリックして新規関数を作成->選択プロセス->入力/出力パラメータの記入->関数体情報の記入->保存->関数名の記入 SQLを使用して を作成
構文:
パラメータの説明:
IN入力パラメータは、そのパラメータの値がストアド・プロシージャの呼び出し時に指定されなければならないことを示し、ストアド・プロシージャ中にそのパラメータを変更した値は戻されず、デフォルト値となる
OUT出力パラメータこの値は、記憶プロセス内部で変更され、戻ることができる
INOUT入出力パラメータ呼び出し時に指定し、変更・返却可能
プロシージャの説明:プロシージャの開始と終了はBEGINとENDで識別されます.
例:
IN
OUT
INOUT
ストレージの表示
1)表示するストレージの選択→ストレージの設計
2)sql表示
ストレージの変更
1)変更するプロシージャの選択>関数の右クリック>プロシージャ本体の書き込み>保存
2)関数を変更するとき、彼はあなたの元のプロセスを削除して、プロセスの本体の内容を更新したので、プロセスを更新したいときは、プロセスを再構築したほうがいいです.どのように検証して、設計の関数で過程の主体の内容を変更して、SQLのプレビューをクリックして、実行するSQL文を見ることができて、例えば:前のin_param、後の2つの付与コードを注釈して、彼のsqlの内容は
既存の関数を削除しているのがよくわかりますが、パラメータが変更されていない場合は本体の内容を変更するので、パラメータの問題を回避するために、変更プロセスを変更するよりも、パラメータの問題を再作成します.
ストレージの削除
1)変更するプロシージャを選択->関数を右クリックで削除
2)
ストアド・プロシージャ(Stored Procedure)は、外部プログラムが呼び出すためにデータベースに複雑なプログラムを格納するデータベース・オブジェクトです.
ストレージ・プロシージャは、特定の機能のSQL文セットを完了するためにコンパイルされて作成され、データベースに保存されます.ユーザーは、ストレージ・プロシージャの名前を指定し、必要に応じてパラメータを指定することで実行を呼び出すことができます.
ストレージプロセスは思想的に簡単で、データベースSQL言語レベルのコードパッケージと再利用です.
ストレージの作成
1)ウィザードの作成
対応するデータベースの下にある関数を選択して右クリックして新規関数を作成->選択プロセス->入力/出力パラメータの記入->関数体情報の記入->保存->関数名の記入
構文:
CREATE PROCEDURE ([IN|OUT|INOUT] ],[IN|OUT|INOUT] ,…)
[ ...]
パラメータの説明:
IN入力パラメータは、そのパラメータの値がストアド・プロシージャの呼び出し時に指定されなければならないことを示し、ストアド・プロシージャ中にそのパラメータを変更した値は戻されず、デフォルト値となる
OUT出力パラメータこの値は、記憶プロセス内部で変更され、戻ることができる
INOUT入出力パラメータ呼び出し時に指定し、変更・返却可能
プロシージャの説明:プロシージャの開始と終了はBEGINとENDで識別されます.
例:
IN
# SELECT
CREATE PROCEDURE in_param(IN p_in int)
BEGIN
SELECT p_in;
SET p_in=2;
SELECT p_in;
END;
CREATE PROCEDURE in_param2(IN p_in int)
BEGIN
SET p_in=2;
SELECT p_in;
END;
#
SET @p_in=1;
CALL in_param(@p_in);
SELECT @p_in;
:1,1
CALL in_param2(@p_in);
SELECT @p_in;
:2,1
,p_in , @p_id
OUT
# SELECT
CREATE PROCEDURE in_param3(OUT p_in int)
BEGIN
SELECT p_in;
END;
CREATE PROCEDURE in_param4(OUT p_in int)
BEGIN
SET p_in=2;
SELECT p_in;
END;
#
SET @p_in=1;
CALL in_param3(@p_in);
SELECT @p_in;
:null,null
CALL in_param4(@p_in);
SELECT @p_in;
:2,2
,p_in , @p_id
p_in , p_in , , 。
INOUT
CREATE PROCEDURE in_param5(INOUT p_in int)
BEGIN
SELECT p_in;
END;
CREATE PROCEDURE in_param6(INOUT p_in int)
BEGIN
SET p_in=2;
SELECT p_in;
END;
#
SET @p_inout=1;
CALL in_param5(@p_inout) ;
SELECT @p_inout;
:1,1
CALL in_param6(@p_inout) ;
SELECT @p_inout;
:2,2
p_inout , , ,@p_inout 。
ストレージの表示
1)表示するストレージの選択→ストレージの設計
2)sql表示
// /
SELECT * FROM mysql.proc ;
//
SHOW PROCEDURE STATUS
SHOW PROCEDURE STATUS where Db ="py_etl"
// ,
show PROCEDURE status like ' ';
show PROCEDURE status like '%me';
show PROCEDURE status like "in_param"
//
show create PROCEDURE ' ';
show create PROCEDURE ym_datesql
//
call PROCEDURE( )
ストレージの変更
1)変更するプロシージャの選択>関数の右クリック>プロシージャ本体の書き込み>保存
2)関数を変更するとき、彼はあなたの元のプロセスを削除して、プロセスの本体の内容を更新したので、プロセスを更新したいときは、プロセスを再構築したほうがいいです.どのように検証して、設計の関数で過程の主体の内容を変更して、SQLのプレビューをクリックして、実行するSQL文を見ることができて、例えば:前のin_param、後の2つの付与コードを注釈して、彼のsqlの内容は
DROP PROCEDURE IF EXISTS `in_param`;
CREATE DEFINER = `root`@`localhost` PROCEDURE `in_param`(IN p_in int)
BEGIN
SELECT p_in;
END;
既存の関数を削除しているのがよくわかりますが、パラメータが変更されていない場合は本体の内容を変更するので、パラメータの問題を回避するために、変更プロセスを変更するよりも、パラメータの問題を再作成します.
ストレージの削除
1)変更するプロシージャを選択->関数を右クリックで削除
2)
//
drop PROCEDURE ' ';
drop PROCEDURE in_param ;