cómo puedo crear índices autoincrementados?

noesdificil
26 de Diciembre del 2003
Hola.
Tengo una duda, y esperaba que alguien me la puediera solucionar.
Estoy en plena construcción de una base de datos en ORACLE, y necesito que una de las columnas de una tabla sea "primary key" y autoincrementada, cuando haga un "insert". Cuál es la orden que lo hace y si tiene que ser de un tipo de datos concreto?
Gracias de antemano
NoEsDificil

f_gallego
26 de Diciembre del 2003
Creo que eso por si solo no es posible, una solucion es realizar una llamada a una secuencia oracle (sequence.nextval o algo asi)

JackazZ
26 de Diciembre del 2003
Efectivamente tienes que crear una secuencia. La sintaxis es algo asi:

CREATE SEQUENCE SEQ_CLIENTES
INCREMENT BY 1
START WITH int
MAXVALUE int | NOMAXVALUE
MINVALUE int | NOMINVALUE
CYCLE | NOCYCLE
CACHE int | NOCACHE
ORDER | NOORDER

Experimenta un poco con ello.
El siguiente paso seria crear un trigger que cogiera el proximo valor de la secuencia antes de una insercion y lo acoplara como ID. 3 sentencias utiles son:

-- Te devuelve el siguiente valor de la secuencia
SELECT SEQ_ID_CLIENTES.NEXTVAL FROM DUAL

-- Te devuelve el valor actual de la secuencia
SELECT SEQ_ID_CLIENTES.CURRVAL FROM DUAL

-- Te devuelve el anterior valor de la secuencia
SELECT SEQ_ID_CLIENTES.LASTVAL FROM DUAL

No recuerdo si esta ultima era exactamente asi o nisiquiera existe, estoy medio dormido xD

Salu2...