Поскольку с триггерами у меня мягко говоря не очень, а корпоративная политика гласит: "Триггерами пользоваться сугубо в исключительных ситуациях, когда без них не обойтись" - то изучать их в рабочем процессе не получается.
Но вопрос: "Как сделать автоинкремент primary key?" - меня не отпускал, то я решил найденное решение записать в блог.
Итак, нам понядобятся:
Но вопрос: "Как сделать автоинкремент primary key?" - меня не отпускал, то я решил найденное решение записать в блог.
Итак, нам понядобятся:
- Таблица:
create table test (id number, testdata varchar2(255)); - Последовательность: create sequence test_seq start with 1 increment by 1 nomaxvalue;
- И собственно говоря триггер, который будет создавать нам значение ключа: 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
Текст примеров взять с: http://jen.fluxcapacitor.net/geek/autoincr.html
Комментариев нет:
Отправить комментарий