在Oracle和2模式中在表上创建外键失败

时间:2019-06-05 13:40:45

标签: oracle foreign-keys schema

我有两个模式,并且我试图创建一个具有两个外键约束的表。无论我是单独添加约束还是在表创建DDL中添加约束,创建外键约束都不起作用。此外,无论我尝试运行两个用户中的哪个。 oracle错误是ORA-01031:特权不足。 省略外键约束时将创建该表。

预期结果:创建具有两个约束的表。

CREATE TABLE "XXX_MONITORING"."COMPOSITE_STATUS"
   (    "COMPOSITE_STATUS_ID" NUMBER,
    "COMPOSITE_ID" NUMBER,
    "STATUS" CHAR(1),
    CONSTRAINT "COMPOSITE_FK" FOREIGN KEY ("COMPOSITE_ID")
      REFERENCES "XXX_MONITORING_CONFIGURATION"."COMPOSITE_KPI_COMPONENTS" ("COMPONENT_ID") ON DELETE CASCADE ENABLE,
    CONSTRAINT "COMPOSITE_STATUS_FK" FOREIGN KEY ("STATUS")
      REFERENCES "XXX_MONITORING_CONFIGURATION"."INDICATION_COLOR" ("INDICATION_COLOR_ID") ON DELETE CASCADE ENABLE  
   );

1 个答案:

答案 0 :(得分:2)

表COMPOSITE_KPI_COMPONENTS和INDICATION_COLOR处于不同的架构,即XXX_MONITORING_CONFIGURATION。

该用户必须向XXX_MONITORING授予对COMPOSITE_KPI_COMPONENTS和INDICATION_COLOR的引用。

-- Grant statement

grant REFERENCES on COMPOSITE_KPI_COMPONENTS to XXX_MONITORING;
grant REFERENCES on INDICATION_COLOR to XXX_MONITORING;