0

ビューについて質問があります。一言で言えば、ビューを介してフィールドを更新する必要があります。

A) すべての車のフィールドと各車のオプション データを表示するビューを作成します。すべての車が表示されることを確認してください。

create view carview as
select c.serial, c.cname, c.make, c.model, c.cyear, c.color, c.trim,
c.enginetype, c.purchinv, c.purchdate, c.purchfrom, c.purchcost, c.freightcost,
c.listprice, o.ocode, o.odesc, o.ocost, o.olist
from car c
join baseoption b
on c.serial = b.serial
join options o
on b.ocode = o.ocode

B) ユーザー C にビューにアクセスしてもらい、ビューの権限をユーザー C に割り当てて、ユーザーにビューをテストしてもらいます。一部のフィールドのみを照会します。車の年式を更新し、提出物に回答を含めます。

GRANT ALL ON carview TO C;

ユーザー C はビューにアクセスして選択できますが、ユーザー C でビューを更新する方法がわかりません (それが可能であれば)。

4

1 に答える 1

2

個人的には更新可能なビューは嫌いですが、可能です。ビューに INSTEAD OF トリガーを実装します。

http://psoug.org/reference/instead_of_trigger.html

また、特定の種類の更新のみを許可するように調整することもできます。

CREATE OR REPLACE <TRIGGER NAME>
INSTEAD OF UPDATE
ON <VIEW>
FOR EACH ROW
BEGIN
    <UPDATE STATEMENT>; 
END <TRIGGER NAME>;
/
于 2013-03-08T20:21:25.713 に答える