【发布时间】:2011-01-06 15:06:47
【问题描述】:
当该列是多列主键的一部分时,如何将列设置为“”(空字符串,相当于 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 中,数据是索引),否则......我该怎么办?
谢谢! ♥
【问题讨论】:
标签: database oracle null indexing primary-key