Как можно задать для столбца значение "" (пустая строка, эквивалентная NULL в Oracle), если этот столбец является частью первичного ключа из нескольких столбцов?Это мотивация ...
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 ...
Обычно я бы использовал "настоящий" первичный ключ, такой как бессмысленный последовательный идентификатор (см. этот вопрос ), а затем установил бы уникальное ограничениеповерх моих столбцов данных, например ...
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), поэтому первичный ключ имеет для столбцов данных(в IOTs данные являются индексом) или еще ... Что мне делать?
Спасибо!♥