Пред.
След.
Макеты страниц
Распознанный текст, спецсимволы и формулы могут содержать ошибки, поэтому с корректным вариантом рекомендуем ознакомиться на отсканированных изображениях учебника выше Также, советуем воспользоваться поиском по сайту, мы уверены, что вы сможете найти больше информации по нужной Вам тематике 3.5.1 Создание суррогатных ключей с помощью последовательностейПоследовательность (sequence) это объект, который генерирует ряд последовательных уникальных чисел. Следующий оператор определяет последовательность под названием CustID, которая начинается с 100 и увеличивается на 1 при каждом использовании: Create Sequence CustID Increment by 1 start with 100; Для нас являются важными два метода последовательностей. Метод NextVal выдает следующее значение в последовательности, а метод CurrVal выдает текущее значение в последовательности. Так, CustID.NextVal выдает следующее значение в последовательности CustID. С помощью последовательности можно вставить строку в таблицу CUSTOMER, как показано ниже: INSERT
INTO CUSTOMER (CustomerlD, Name,
AreaCode, PhoneNumber)
Этот оператор создаст в таблице CUSTOMER строку, где столбцу CustomerlD будет присвоено следующее значение в последовательности CustID.
К сожалению, использование последовательностей не гарантирует корректность значений суррогатных ключей. Во-первых, любой разработчик может использовать существующую последовательность для произвольных целей. Если последовательность используется для каких-либо иных целей, нежели генерация суррогатных ключей, некоторые значения в ней будут пропущены. Вторая, более серьезная проблема заключается в том, что в схеме нет ничего, что запрещало бы выполнить вставку без использования последовательности. Так, Oracle примет без возражений оператор INSERT
INTO CUSTOMER
Возможно, что выполнение этого оператора приведет к появлению одинаковых значений суррогатного ключа. В этом случае Oracle не позволит выполнить вставку, поскольку атрибут CustomerlD определен как первичный ключ. Следовательно, возникает потребность в коде, который бы обрабатывал эту исключительную ситуацию. Наконец, есть вероятность, что кто-то случайно использует не ту последовательность для вставки в таблицу. Несмотря на возможность таких проблем, последовательности представляют собой лучший способ работы с суррогатными ключами в Oracle.
|
1 |
Оглавление
|