Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Oracle > первичные ключи


Автор: Petro123 4.9.2007, 14:22
Есть 2 таблицы отношение один к одному,
При занесении данных в первую таблицу для первичного ключа срабатывает соотв тригер кот генерирует член последовательности, Вобщем все как обычно, 
Вот, 
Далее нужно во вторую таблицу добавить тоже данные причем код такой же, 
Как его узнать?
Seq.NextVal-1 как то тупо, тем более что в последовательности могут быть пропуски

Добавлено через 2 минуты и 8 секунд
может быть в тригере записывать в глобальную переменную,

Добавлено через 4 минуты и 53 секунды
или в вспомогательную таблицу

Автор: DimW 4.9.2007, 16:02
Код

declare
  v_id number;
begin
  insetr into table1
        (id, name)
  values(seq.nextval, 'test')
  returning id into v_id;
  -- дальше v_id используешь по назначению
end;



Автор: jsa 5.9.2007, 04:50
если все в одной транзакции, то почему не использовать seq.currval

Автор: Petro123 5.9.2007, 07:14
Все оказывается значительно проще, спасибо.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)