我有一個小問題!將視圖中的信息傳遞給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 2012-01-28 13:41:26
作爲一個側面說明:只需寫'where staffID = user'就不需要'雙用戶選擇用戶' – 2012-01-28 23:27:01