Oracle,使用不同的表空间创建带有内联约束声明的表

Ped*_*des 4 oracle constraint tablespaces

我有两个关于 Oracle 表的内联约束声明的问题:

  1. 这是一种不好的做法吗?如果是这样,为什么?

  2. 如何像使用大纲声明时那样为主键和索引声明不同的表空间?就像是

    创建表 THIS_TABLE (
        身份证号码, 
        约束 THIS_TABLE_PK (id) 表空间 INDEX_TABLESPACE
    ) 表空间 DATA_TABLESPACE;

Phi*_*lᵀᴹ 10

像这样:

create table THIS_TABLE (
  id number NOT NULL, 
  constraint THIS_TABLE_PK PRIMARY KEY(id) 
             USING INDEX TABLESPACE INDEX_TABLESPACE
) tablespace DATA_TABLESPACE;
Run Code Online (Sandbox Code Playgroud)

USING INDEX TABLESPACE 是语法 - 你离得不远了。

就好的/坏的做法而言,这是基于意见的,所以这里并不是真正应该问的问题。另一种方法是ALTER TABLE ....在表创建后使用语法。