Спочатку потрібно створити таблицю:
create table incr ( id number not null primary key, aname varchar2(50) )Поле id має автоматично збільшуватися на певне значення.
для цього потрібно створити sequence:
create sequence incr_sq start with 1 increment by 1;В принципі цього може вистачити.
Для вставки значень в таблицю потрібно написати такий код:
insert into incr values (incr_sq.nextval,'Петро'); insert into incr values (incr_sq.nextval,'Іван');А можна піти далі і свторити триггер:
CREATE OR REPLACE TRIGGER incr_trigger BEFORE INSERT ON incr REFERENCING NEW AS NEW FOR EACH ROW BEGIN SELECT incr_sq.nextval INTO :NEW.ID FROM dual; END;Після створення триггеру вставка значень в таблицю виглядатиме наступним чином:
insert into incr (aname) values ('Степан'); insert into incr (aname) values ('Микола');Можна замість попередніх рядків й написати:
insert into incr values (8,'Степан'); insert into incr values (7,'Степан');Але в результаті запиту значення id всеодно буде рівним 3 і 4.
Щоб вносилися значення з попереднього інсерту потрібно трохи змінити триггер, а саме:
CREATE OR REPLACE TRIGGER incr_trigger BEFORE INSERT ON incr REFERENCING NEW AS NEW FOR EACH ROW BEGIN if :new.id is null then SELECT incr_sq.nextval INTO :NEW.ID FROM dual; end if; END;
Немає коментарів:
Дописати коментар