【问题标题】:How to assign two foreign keys in child table ORACLE SQL?如何在子表ORACLE SQL中分配两个外键?
【发布时间】:2020-09-01 17:22:20
【问题描述】:

如何从 ORACLE SQL 中的两个(或更多)父类继承?我尝试过这样的事情:

    ID(13),
    OTHER_ID(9),
    CONSTRAINT FK_ID FOREIGN 
    KEY(ID) REFERENCES TABLE_ONE(ID),
    CONSTRAINT FK_OTHER_GROUP FOREIGN 
    KEY(OTHER_ID) REFERENCES TABLE_TWO(OTHER_ID)

我已经阅读了文档,我发现的代码是这个:

      INDEX (product_category, product_id),
      INDEX (customer_id),

      FOREIGN KEY (product_category, product_id)
      REFERENCES product(category, id)
      ON UPDATE CASCADE ON DELETE RESTRICT,

      FOREIGN KEY (customer_id)
      REFERENCES customer(id)

这对我来说不太适用。有什么特殊的方法来定义这些索引吗?我以前没有见过他们。第一个示例存在未指定数据类型的问题。但我希望有人向我解释我如何以第二种(oracle 文档)方式做到这一点。

【问题讨论】:

  • 能否请您更新问题并提供有关究竟什么不起作用的详细信息?你有什么错误吗?或者还有什么不工作?

标签: oracle foreign-keys oracle-sqldeveloper oracle-apex


【解决方案1】:

我是这样理解问题的:

  • 有两个表,每个表都有主键约束
    • 在我的示例中,它们是 t_empt_dept
  • 还有第三个表,其列应该引用前两个表中的主键
    • 这些是fk_th_empfk_th_dep 外键约束

如果是这样,以下是如何做到这一点:

SQL> create table t_emp
  2    (empno    number   constraint pk_temp primary key,
  3     ename    varchar2(20)
  4    );

Table created.

SQL> create table t_dept
  2    (deptno   number   constraint pk_dept primary key,
  3     dname    varchar2(20)
  4    );

Table created.

SQL> create table third
  2    (id       number   constraint pk_third primary key,
  3     other_id number,
  4     --
  5     constraint fk_th_emp foreign key (id)       references t_emp (empno),
  6     constraint fk_th_dep foreign key (other_id) references t_dept (deptno)
  7    );

Table created.

SQL>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-13
    • 2018-01-18
    相关资源
    最近更新 更多