【问题标题】:Creating foreign keys on a table fails in Oracle and 2 schemas在 Oracle 和 2 个模式中在表上创建外键失败
【发布时间】:2019-06-05 13:40:45
【问题描述】:

我有两个模式,我正在尝试创建一个具有两个外键约束的表。无论我是单独添加约束还是在表创建 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  
   );

【问题讨论】:

  • 您是否有权访问 FK 表,包括受 ON DELETE 影响的表?
  • 你真的应该避免CHAR 类型、双引号,并且在我看来大写字母。

标签: oracle foreign-keys schema


【解决方案1】:

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

该用户必须将 COMPOSITE_KPI_COMPONENTS 和 INDICATION_COLOR 上的 REFERENCES 授予 XXX_MONITORING。

-- Grant statement

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

【讨论】:

    猜你喜欢
    • 2018-03-06
    • 2023-04-08
    • 1970-01-01
    • 2012-12-20
    • 2019-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多