Campo de autoincremento en ORACLE
Ejemplo, la tabla 'TBLDETALLE_PEDIDOS' y tendrá dos campos, del cual id_cliente será el autoincrement.
create table
TBLDETALLE_PEDIDOS (
id_cliente number PRIMARY KEY,
pedido varchar2(20));
Luego será necesario crear una secuencia que se encargue de hacer el incremento, 'secuencia_id_detallepedido', comenzará desde el valor 1 y se incrementará de uno.
create sequence secuencia_id_detallepedido
start with 1
increment by 1
nomaxvalue;
Se crea un trigger, el cual hará elautoincremento cada vez que se realice un insert a esta tabla.
create trigger trig_id_pedido
before insert on TBLDETALLE_PEDIDOS
for each row
begin
select
secuencia_id_detallepedido.nextval into :new.id_cliente from dual;
end;
Luego los insert a la tabla 'TBLDETALLE_PEDIDOS', serían de la forma:
insert into
TBLDETALLE_PEDIDOS values ('pedido');
O de la forma:
insert into
TBLDETALLE_PEDIDOS values (null,'pedido');
Que util!
ResponderEliminarbien
ResponderEliminarA mi me sale este erro:
ResponderEliminarError code 4098, SQL state 42000: ORA-04098: trigger 'HCOARITE.TRIG_ID_PEDIDO' is invalid and failed re-validation
Revisa el estado del trigger,
ResponderEliminarselect object_name from dba_objects where object_type = 'TRIGGER' and status = 'INVALID';
una opción es que lo elimines y lo crees de nuevo, pero tambien seria buen ver el código que estás haciendo.