引用另一个模式的外键

时间:2015-03-19 21:05:51

标签: database oracle foreign-keys relational-database primary-key

对于我的项目,我使用的是oracle数据库,我必须使用2个不同的数据库模式。请考虑以下情况 -

我有一个架构A,其中有一个表table_a,主键为apk

我有另一个架构B,其中我有一个表table_b,主键为bpk

如果这两个表都在同一个数据库中,那么我可以很容易地创建一个主键 - 外键关系。

但我可以在这两列 - A.table_a.apkB.table_b.pbk之间创建一个主键 - 外键关系(或类似的东西)。

提前致谢。

1 个答案:

答案 0 :(得分:5)

要创建引用不同模式中对象的外键,只需要限定对象名称

ALTER TABLE B.table_b
  ADD CONSTRAINT fk_b_a FOREIGN KEY (apk) REFERENCES a.table_a( apk )

这还要求用户BA.table_a上拥有足够的权限。用户需要具有REFERENCES权限,并且可能需要在表格上拥有SELECT权限。