0

私はSQLのビューについて勉強していて、多少混乱していて、次のクエリがあります:

テーブル'item'があり、それにデータを挿入する必要があります。ビューなしとビュー使用の2つの方法を使用しています。

CREATE VIEW vw_item
SELECT * FROM item
  1. ビューを介した挿入:

    INSERT INTO vw_item values(...)
    
  2. テーブルからの挿入:

    INSERT INTO item values(...)
    

クエリ1と2の違いは何ですか?つまり、テーブルに直接挿入し、ビューを使用してテーブルに挿入します。

CHECK OPTIONビューの作成時に使用する場合のみ挿入に違いはありますか?

4

3 に答える 3

3

2 つの INSERT ステートメントに違いはありません。ビューは更新可能ですが、ビューを更新可能にするものには制限があります。

これCHECK OPTIONにより、ビューの基準を満たさない変更が防止されます。ビューの例に WHERE 句がある場合、関連する列は更新できませんでしたが、テーブル内の他の列は更新できます。

参照

于 2011-03-10T05:04:50.823 に答える
2

MS-SQL の仕様:

  1. OMG Ponies の答えには、探しているもののほとんどが含まれています。そこから始めてください。

  2. VIEW の仕組みについては、How much space does a view take up in Microsoft SQL Serverによると、ビューは、インデックス付きビューでない限り、呼び出されたときにのみ "実体化" (つまり、データを取得する) します。

  3. インデックス付きビューを使用すると、挿入/更新/削除のオーバーヘッドが追加されます。ソース: http://www.novicksoftware.com/Articles/Indexed-Views-Basics-in-SQL-Server-Page-4.htm

  4. その他 インデックス付きビューの最適化に関する情報: http://technet.microsoft.com/en-us/library/cc917715.aspx

MySQL に関するいくつかの詳細 (おそらく VIEW に興味がある人には役立つでしょう): http://dev.mysql.com/doc/refman/5.0/en/view-updataability.html

他のデータベース サーバーでは、おそらくパフォーマンス/インデックス作成/更新能力にわずかな違いがあるため、特定のデータベースについてはそのことを念頭に置いてください。

于 2011-03-10T05:01:23.183 に答える