【问题标题】:How to add an index to a foreign key and save it in a tablespace?如何为外键添加索引并将其保存在表空间中?
【发布时间】:2017-05-10 09:03:51
【问题描述】:

我想像这样创建表 X_REL_REPLICA:

CREATE TABLE X_REL_REPLICA
(
  CODE_SI               VARCHAR2(10 CHAR),
  ID_SA                 VARCHAR2(30 CHAR),
  CODE_SI_SAL           VARCHAR2(10 CHAR),
  ID_SA_SAL         VARCHAR2(30 CHAR),
 CONSTRAINT X_REL_REPLICA_PK PRIMARY KEY (CODE_SI, ID_SA) USING INDEX TABLESPACE APIGTW_INDEX_WORK ENABLE,
 CONSTRAINT X_REL_REPLICA_FK FOREIGN KEY (CODE_SI_SAL, ID_SA_SAL) REFERENCES X_SAL_REPLICA(CODE_SI, ID_SA) 
    ON DELETE CASCADE

我想向我的外键 X_REL_REPLICA_FK 添加一个索引并将其保存在表空间 APIGTW_INDEX_WORK 中,就像我使用主键所做的那样。我应该怎么做?

【问题讨论】:

    标签: sql oracle indexing


    【解决方案1】:

    我认为 CREATE TABLE 声明不可能。

    using_index_clause

    您只能在启用唯一键或主键约束时指定 using_index_clause。

    Documentation

    创建表后添加索引。

    create index <index_name> on X_REL_REPLICA(CODE_SI_SAL, ID_SA_SAL) tablespace <tablespace_name>;
    

    【讨论】:

    • 好的,谢谢,我解决了我的问题。实际上,Oracle 在我的 PK 上而不是在我的 FK 上自动创建一个索引,所以在创建表之后我必须执行 CREATE INDEX "X_REL_REPLICA_FK" ON "X_REL_REPLICA" ("CODE_SI_SAL","ID_SA_SAL") TABLESPACE "APIGTW_INDEX_WORK";
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多