ホームページ >データベース >mysql チュートリアル >MySQL ストアド関数とストアド プロシージャの違いは何ですか?

MySQL ストアド関数とストアド プロシージャの違いは何ですか?

王林
王林転載
2023-05-26 14:28:263179ブラウズ

MySQL ストアド関数 (カスタム関数)。関数は通常、値を計算して返すために使用されます。頻繁に使用される計算や関数を関数に記述することができます。

ストアド関数は、ストアド プロシージャと同様、データベース内で定義された SQL ステートメントのコレクションです。

ストアド ファンクションとストアド プロシージャの違い

1. ストアド ファンクションは戻り値を 1 つだけ持つのに対し、ストアド プロシージャは複数の戻り値を持つことも、戻り値を持たないこともできます。価値。

2.ストアド関数は入力パラメータ のみを持つことができ、取り込むことはできませんが、ストアド プロシージャは複数の in、out、inout パラメータを持つことができます。

3. ストアド プロシージャ内のステートメントはより強力です。ストアド プロシージャは非常に複雑なビジネス ロジックを実装できますが、関数には多くの制限があります。たとえば、挿入、更新、削除、作成などは使用できません。関数内ステートメント;

4. ストアド関数はクエリ作業を完了し、入力パラメータを受け入れ、結果を返すだけです。これは、関数によって実装された関数が相対的に対象とされていることを意味します。

5. ストアド プロシージャはストアド関数を呼び出すことができますが、関数からストアド プロシージャを呼び出すことはできません。

6. ストアド プロシージャは通常、独立した部分 (呼び出し) として実行されます。この関数はクエリ ステートメントの一部として呼び出すことができます

create function func_name ([param_name type[,...]])
returns type
[characteristic ...] 
begin
    routine_body
end;

パラメータの説明:
(1) func_name: ストアド関数の名前。
(2)param_name タイプ: オプション。ストレージ関数のパラメーターを指定します。 type パラメータは、ストアド関数のパラメータ タイプを指定するために使用されます。これには、MySQL データベースでサポートされているすべてのタイプを指定できます。
(3) RETURNS type: 戻り値の型を指定します。
(4)characteristic: オプション。ストレージ関数の特性を指定します。
(5) Luke_body: SQL コードの内容。

ああああああ

以上がMySQL ストアド関数とストアド プロシージャの違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。