質問: SQLのビューを使用したデータ変更について教えてください。 ビューを通じてデータの変更を行う場合、仮にA,B,Cと表があり A,Bのビューを作成して条件が整っている場合データを変更できるのは A,Bの行だけでCは変更できないと言うことでいいんでしょうか? またデータを変更できる条件にビューの定義にグループ関数とかDISTINCTキワード等が含まれない場合とありますがこれらが指している場所はビューを作成する際の副問い合わせに含まれていたらデータを変更できないと言うことでよろしいでしょうか? 詳しい方ご教授お願い致します。
回答: たぶん以下の一文からの質問だと思います。 > > 標準SQLでViewからデータ更新するには、 > > ・SELECT句にDISTINCTが含まれない。 > > ・FROM句にはテーブルが1つだけ。 > > ・GROUP BY句を含まない。 > > の全てを満たす必要があります。 > > > この一文は標準SQLってことが前提ですが、実際にはDBMS毎の独自仕様です。 標準SQL通りであることを前提にする意味がありません。 > > またデータを変更できる条件にビューの定義にグループ関数とかDISTINCTキワード等が含まれない場合とありますがこれらが指している場所はビューを作成する際の副問い合わせに含まれていたらデータを変更できないと言うことでよろしいでしょうか? > > > 副問い合わせにDISTINCTが含まれていても大概はいけます。 しかし、DBMS毎の独自仕様ですから使うDBMSのドキュメントを呼んで下さい。