[英]How to reference foreign key of another schema table while creating table?
我有兩個模式:
UserCredential_tbl
表 PlayerAchievements_tbl
表 現在,在創建名為PlayerAchievements_tbl
表時,我想從另一個架構表Usercredential_tbl
引用它。 這是下面的SQL查詢:
create table PlayerAchievements_tbl
(
pid number(10) references gamersprofiledb.usercredential (id),
aid number(10) references achievements (id)
);
但是上面的查詢給了我“表或視圖不存在”的錯誤
這個 (可能重復)的答案是在ALTER操作中添加foreign_key,而我希望它在CREATE TABLE操作上添加foreign_key,而且它也沒有指定執行此查詢可能需要的授予或特權
所以我的確切問題是:
1)在創建新表時可以將另一個模式表引用到現有模式表中嗎?
2)還是我們需要一些特權才能執行此查詢?
提前致謝。
默認情況下,(非特權)用戶無權查看另一個用戶擁有的對象。 您需要GRANT
使用權限:
GRANT REFERENCES ON GamersProfileDB.UserCredential TO DeveloperDB;
或者,如果您還需要從表中進行SELECT
,則:
GRANT SELECT ON GamersProfileDB.UserCredential TO DeveloperDB;
擁有引用(或選擇)表的權限后,您可以使用:
CREATE TABLE PlayerAchievements_tbl -- Why add the "_tbl" suffix?
(
pid number(10)
CONSTRAINT PlayerAchievements__PID__FK -- name the constraint
REFERENCES GamersProfileDB.UserCredential (id),
aid number(10)
CONSTRAINT PlayerAchievements__AID__FK -- name the constraint
REFERENCES Achievements (id),
CONSTRAINT PlayerAchievements__PID_AID__PK
PRIMARY KEY ( pid, aid )
);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.