2015-05-04 4 views
0

Может ли кто-нибудь сказать мне, как я могу создать уникальные ключи, объединив два столбца, когда одно из значений столбца может быть нулевым?Создание составного первичного ключа, когда один из столбцов может быть или не может быть нулевым

Так что скажем, что есть 2 col: -col1 и col2. Я должен определить составной ключ в этих двух столбцах и как я могу обрабатывать нулевые значения, входящие в любой из этих столбцов?

Есть ли способ случайного генерации значения для любого из нулевого столбца и создания уникального ключа в информатике?

+0

Как насчет того, чтобы сделать r вычисленный? Или третий столбец, который будет вычислять первые два и создать уникальный ключ на третьем (если вы не можете изменить определение col2). – Maciejg

ответ

0

Удерживайте последовательность, присоединенную к составному ключу (col1 + col2 + seq_no). Для каждого шага выполнения этого ключа и сохранения его max, а затем в последующих запусках используйте max + 1. Для инкрементной последовательности вы можете использовать генератор последовательности или вычислять значение с помощью переменной выражения.

0

Вы можете использовать DECODE для обработки значений NULL в COL1 и COL2.

Использование последовательности генератор для заполнения значений в SEQ_VALUE порту Начать с 1001 и приращения на 1,

KEY_COL1 = DECODE(COL1,NULL,0,COL1) 
--assigning to a variable port KEY_COL1 

KEY_COL2 = DEOCDE(COL2,NULL,0,col2) 
--assigning to a variable port KEY_COL2 

Затем сформировать составной ключ

COMPOSITE_KEY = (SEQ_VALUE || KEY_COL1 || KEY_COL2) 

Как это работает:

enter image description here

Смежные вопросы