четверг, 20 октября 2011 г.

Primary key и триггер

    Поскольку с триггерами у меня мягко говоря не очень, а корпоративная политика гласит: "Триггерами пользоваться сугубо в исключительных ситуациях, когда без них не обойтись" - то изучать их в рабочем процессе не получается.
    Но вопрос: "Как сделать автоинкремент primary key?" - меня не отпускал, то я решил найденное решение записать в блог.

    Итак, нам понядобятся:
  1. Таблица:
    create table test (id number, testdata varchar2(255));
  2. Последовательность: create sequence test_seq start with 1 increment by 1 nomaxvalue;
  3. И собственно говоря триггер, который будет создавать нам значение ключа: create trigger test_trigger before insert on test for each row begin select test_seq.nextval into :new.id from dual; end;
После создания всех этих объектов нам достаточно выполнить: insert into test(testdata) values('voila!');
И наши данные будут без проблем добавлены.
Текст примеров взять с: http://jen.fluxcapacitor.net/geek/autoincr.html

Комментариев нет:

Отправить комментарий