set feedback off
set serveroutput on
-------------------------------------------------------------
--Criamos uma tabela que tera a chave auto-incrementada.
-------------------------------------------------------------
create table auto_increment (
id number not null constraint pk_ai primary key,
something number
);
-------------------------------------------------------------
--Criamos uma sequence que vai alimentar a chave.
-------------------------------------------------------------
create sequence seq_auto_increment start with 1 increment by 1;
-------------------------------------------------------------
--Criamos a trigger que vai colocar a seq na chave.
-------------------------------------------------------------
create or replace trigger ai
before insert on auto_increment
for each row
begin
if :new.id is null then
select seq_auto_increment.nextval into :new.id from dual;
end if;
end;
/
declare
i number;
begin
-------------------------------------------------------------
--aqui vai a manha... Ele retorna o código gerado da sequence!!!
-------------------------------------------------------------
insert into auto_increment (something) values (9) returning id into i;
dbms_output.put_line('id was: '||i);
insert into auto_increment (something) values (8) returning id into i;
dbms_output.put_line('id was: '||i);
insert into auto_increment (something) values (4) returning id into i;
dbms_output.put_line('id was: '||i);
insert into auto_increment (something) values (5) returning id into i;
dbms_output.put_line('id was: '||i);
end;
/
--drop table auto_increment;
--drop sequence seq_auto_increment;
Users browsing this forum: No registered users and 1 guest