→

Блог им. qubit →  Особенности Sequences в Oracle

Итак, некоторые особенности работы последовательностей в Oracle.

В MySQL для создания уникального ключа есть такая прелесть как auto_increment поле.
В Oracle такй возможности нет — для этого используется инструмент Sequence, из которого можно вытягивать нужные значения. Допустим у нас есть последовательность some_sequence. Что бы получить следующее значение нужно считать его поле some_sequence.nextval. Что бы получить текущее значение последовательности нужно обратиться к полю some_sequence.currval.

Теперь вопрос к гуру Oracle

Какой результат вернет запрос
SELECT SOME_SEQUENCE.NEXTVAL,
           SOME_SEQUENCE.CURRVAL,
           SOME_SEQUENCE.NEXTVAL,
           SOME_SEQUENCE.CURRVAL
  FROM DUAL


Если следовать элементарной логике, в результате должны получить что-то типа



Однако на самом деле получаем совершенно другой результат:



Что это значит? На элементарную транзакцию, которая выполняется в одном запросе sequence срабатывает всего 1 раз, и когда во второй раз пытаемся вывести SOME_SEQUENCE.NEXTVAL берется значение которое сгенерировалось первым выводом. Анологично работает SOME_SEQUENCE.CURRVAL.
0

MySQL →  Oracle купила Sun Microsystems

Американская Oracle, третья по величине софтверная компания в мире, приобретет компанию Sun Microsystems за 5,6 миллиарда долларов, сообщили корпорации в официальном совместном пресс-релизе. С учетом долга и свободной наличности Sun Microsystems сумма сделки составит 7,4 миллиарда долларов

Вот интересно получается. В свете того что Sun купил MySQL а Oracle купил Sun — теперь при установке MySQL будем любоваться значком Oracle=)
1

Блог им. qubit →  Реклама для задротов Oracle

На сайте http://ora-code.com/ крутится интересная реклама для реальных гурманов Oracle.

1