Oracle数据库:具有NULL值的索引组织表(在多列主键中)

时间:2011-01-06 15:06:47

标签: database oracle null indexing primary-key

当该列是多列主键的一部分时,如何将列设置为“”(空字符串,相当于Oracle中的NULL)?这是动机......

CREATE TABLE entities (
  column1  VARCHAR2(10)
, column2  VARCHAR2(10)
, body     VARCHAR2(4000)
, CONSTRAINT pk_entities            -- can't do this, because sometimes
  PRIMARY KEY ( column1, column2 )  -- col2 is the empty string (NULL).
) ORGANIZATION INDEX ...

通常情况下,我会使用“真正的”主键,例如无意义的顺序ID(请参阅this question),然后对我的数据列设置一个唯一约束,就像这样......

CREATE TABLE entities (
, id       NUMBER PRIMARY KEY
, column1  VARCHAR2(10)
, column2  VARCHAR2(10)
, body     VARCHAR2(4000)
, CONSTRAINT unq_entities 
  UNIQUE ( column1, column2 )
) ORGANIZATION INDEX ...

但是,这是一个很大的索引组织表(IOT),所以主键在数据列上(在IOT中,数据是索引)或者......我该怎么办?

谢谢! ♥

3 个答案:

答案 0 :(得分:2)

答案 1 :(得分:1)

用虚拟字符串替换空字符串并稍后检查...取决于表格是如何使用的。

答案 2 :(得分:0)