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

データベースのストアド プロシージャとトリガーの違いは何ですか

清浅
リリース: 2020-09-08 16:11:30
オリジナル
25768 人が閲覧しました

ストアド プロシージャとトリガーの違いは次のとおりです: 1. ストアド プロシージャは入力パラメーターを使用できますが、トリガーは使用できません; 2. ストアド プロシージャは 0 または n 値を返すことができますが、トリガーは値を返すことができません; 3. トランザクションは次のとおりです。ストアド プロシージャでは使用されますが、トリガーでは使用されません。

データベースのストアド プロシージャとトリガーの違いは何ですか

#【おすすめコース: MySQL チュートリアル #】

ストアド プロシージャとトリガーはどちらもデータベースにおいて非常に重要な知識です。次に、この記事ではこの 2 つの違いをさまざまな側面から比較します。一定の参考効果があり、皆様のお役に立てれば幸いです。


トリガーとは何ですか?

トリガーとは、データベース内のテーブル/ビューで特定のイベントが発生したときに自動的に実行されるプロセス (コード セグメント) です。トリガーは主にデータベースの整合性を維持するために使用されます。トリガーは、ビジネス ルールの適用、データベース内の変更の監査、データの複製にも使用されます。最も一般的なトリガーは、データが操作されるときに起動されるデータ操作言語 (DML) トリガーです。一部のデータベース システムは、データ定義言語 (DDL) イベントが発生したときに起動される非データ トリガーをサポートしています。これらのトリガーは、特に監査に使用できます。 Oracle データベース システムはスキーマ レベルのトリガーをサポートします

ストアド プロシージャとは何ですか?

ストアド プロシージャは、リレーショナル データベースにアクセスできるアプリケーションです。通常、ストアド プロシージャは、データを検証し、データベースへのアクセスを制御するために使用されます。一部のデータ処理操作で複数の SQL ステートメントの実行が必要な場合、そのような操作はストアド プロシージャとして実装されます。ストアド プロシージャを呼び出すときは、CALL または EXECUTE ステートメントを使用する必要があります。ストアド プロシージャは結果 (SELECT ステートメントの結果など) を返すことができます。これらの結果は、他のストアド プロシージャまたはアプリケーションで使用できます。ストアド プロシージャの作成に使用される言語は、通常、if、while、for などの制御構造をサポートします。使用するデータベース システムによっては、ストアド プロシージャの実装に複数の言語を使用できます。

ストアド プロシージャとトリガーの違い

(1) ストアド プロシージャは次のとおりです。一連の SQL ステートメントが作成され、データベースに保存されます。そのため、コードを何度も再利用できます。トリガーは、ユーザーによって直接呼び出されない特殊なストアド プロシージャです。トリガーの作成時に、特定のテーブルまたは列に対して特定の種類のデータ変更が行われたときにトリガーされるように定義されます。

(2) ユーザーは、Execute または Exec ステートメントを使用してストアド プロシージャを直接呼び出したり実行したりできますが、トリガーを直接呼び出したり実行したりすることはできません。関連するイベントが発生すると、トリガーのみが自動的に実行されます。

(3) ストアド プロシージャは入力パラメーターを受け取ることができますが、パラメーターをトリガーの入力として使用することはできません。パラメーターをトリガーへの入力として渡すことはできません。

(4) ストアド プロシージャは 0 または n 値を返すことができますが、トリガーは値を返すことができません。

(5) ストアド プロシージャではトランザクションを使用できますが、トリガーではトランザクション処理は許可されません

(6) ストアド プロシージャは通常、ユーザー指定のタスクを実行するために使用され、トリガーが通常使用されます。監査業務用

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート