2016-05-19 7 views
2

現在、私は次のようなストアドプロシージャの多くを使用しています:ストアドプロシージャまたはビュー?

CREATE PROCEDURE `get_bindings_chart`(IN in_layout_id TINYINT(3), IN in_game_id SMALLINT(5)) 
BEGIN 
    SELECT b.normal_group, b.normal_action, b.shift_group, b.shift_action, b.ctrl_group, b.ctrl_action, b.alt_group, b.alt_action, b.altgr_group, b.altgr_action, b.extra_group, b.extra_action, b.image_file, b.key_number 
    FROM bindings as b 
    WHERE b.layout_id = in_layout_id 
    AND  b.game_id = in_game_id; 
END 

は、私がこれを行うためのビューを作成してもらえますか?どちらが良いですか?ありがとう。

+1

ビューはおそらく良いでしょう。他のクエリでも使用できます。 –

答えて

1

それは、ビューとストアドプロシージャに関する概念である

ビュー

1.Doesは2.Canは大きなクエリでのビルディングブロックとして使用されるパラメータ

を受け入れません。

3.単一のSelectクエリのみが含まれます。

4.いずれの表にも変更を加えることはできません。

5.クエリの挿入、更新、削除の対象として(時には)使用することができます。ストアドプロシージャは

1.Acceptは

2.Canが大きいクエリ内のビルディングブロックとして使用できないパラメータ。 、それ以外の、ループなど

4.Canは、1つまたは複数のテーブルへの変更を行う場合のように

3.Canは、いくつかの文が含まれています。

5.挿入、更新、削除クエリのターゲットとして使用できません。

+0

パラメータを受け入れることがクリンチャーです。私はそれを持っている必要があります。 – posfan12

1

ここには実際のロジックが含まれていないため、ビューはおそらくより優れています。ビューは、

  • ビューは、追加の句は、結果
  • を改良するために適用していることができる場所のビューを適用order by句を持つことができる(句、等場合、ジョイン)他のクエリに使用することができる

    1. さまざまな状況に応じて結果を適切に整理する必要があります。

    ロジックを追加するためにストアドプロシージャを使用すると考えられます.1つのステートメントでは実行できない集計と計算が行われている可能性があります。

  • 関連する問題