2

別のユーザーの一部であるキーを参照しています:

例:

create table emp 
     ( name char(10)
     , empid char(10)
     , dob date
     , phone char(14)
     , primary key(empid)
     , foreign key phone 
          references (user2.contacts)
       );

user2主キーとして電話を持つテーブルを保持する場所。

どうすればこれを達成できますか?

4

2 に答える 2

4

USER2 は、ユーザーにテーブルに対する REFERENCES 権限を付与する必要があります。

grant references on contacts to user1
/

他の特権とは異なり、REFERENCES は常に直接付与する必要があることに注意してください。権限がロールを通じて付与されている場合、USER1 は外部キーを作成できません。

外部キーの構文では、参照に主キー (または少なくとも一意のキー) 列を含める必要があります。

create table emp       
( name char(10)      
      , empid char(10)     
      , dob date
      , phone char(14)
      , constraint emp_pk primary key(empid)
      , constraint emp_contact foreign key (phone)
            references (user2.contacts.phone)        ); 

システムが生成した名前は扱いが面倒なので、明示的に制約に名前を付けることをお勧めします。

于 2012-04-29T23:44:44.913 に答える
-1

次のようになります。

create table emp 
     ( name char(10)
     , empid char(10)
     , dob date
     , phone char(14)
     , primary key(empid)
     , foreign key phone 
          references user2.contacts)
       );
于 2012-05-01T05:00:55.163 に答える