私は少し問題があります!Oracle(SQL)のビューから実表への情報の受け渡し
私は、元のベーステーブルに「StaffAddressDetails」あります
CREATE TABLE StaffAddressDetails
(ContactID INTEGER NOT NULL,
Postcode VARCHAR (10) NOT NULL,
HouseNameOrNumber VARCHAR (50) NOT NULL,
Street VARCHAR (50) NOT NULL,
Street2 VARCHAR (50) DEFAULT '...',
Town VARCHAR (50) NOT NULL,
County VARCHAR (50) NOT NULL,
Country VARCHAR (50) NOT NULL,
StaffID INTEGER NOT NULL,
CONSTRAINT StaffAddressDetails_PK PRIMARY KEY (ContactID, Postcode),
CONSTRAINT StaADContactIDSCD FOREIGN KEY (ContactID)
REFERENCES StaffContactDetails (ContactID));
を私はスタッフのメンバーが唯一、自分の詳細を見ることができるようにしたいので、私は、ビュー「HDPBHTTSKStaffAddDetsForSelf」を作成しましたと役割"先生"にそのビューを許可:
CREATE VIEW HDPBHTTSKStaffAddDetsForSelf AS
SELECT * FROM StaffAddressDetails
WHERE StaffID IN
(SELECT USER
FROM DUAL);
...と...
をGRANT SELECT, INSERT, UPDATE ON HDPBHTTSKStaffAddDetsForSelf TO Teacher;
教師が新しいアドレスを取得して学校システムに追加したい場合、新しい行を挿入すると問題が発生します(教師のアカウントにログインしたとき)。
から先生のアカウントに問い合わせたときに挿入された行が表示されますが、元のベーステーブルには渡されません。
クイックフィックスはありますか?事前に
多くのおかげで、 ズールー
あなたが使用する必要があります
挿入した行をコミットしましたか? – danihp
注釈: 'staffID = user'と書いても十分です。' select user from dual'の必要はありません –