O seu banco de dados não suporta seqüências não?
Veja um exemplo para Oracle:
Imagine a seguinte tabela:
SQL> CREATE TABLE TESTE (A NUMBER NOT NULL PRIMARY KEY, B VARCHAR2(64) NOT NULL);
SQL> DESC TESTE;
Nome Nulo? Tipo
A NOT NULL NUMBER
B NOT NULL VARCHAR2(64)
SQL> CREATE SEQUENCE SEQ_TESTE INCREMENT BY 1;
SQL> SELECT * FROM USER_SEQUENCES;
SEQUENCE_NAME MIN_VALUE MAX_VALUE INCREMENT_BY C O CACHE_SIZE LAST_NUMBER
SEQ_TESTE 1 1,0000E+27 1 N N 20 1
Como você pode ver a sua seqüência foi criada
Agora para utilizá-la…
SQL> INSERT INTO TESTE VALUES (SEQ_TESTE.NEXTVAL, ‘AAAAA’);
SQL> INSERT INTO TESTE VALUES (SEQ_TESTE.NEXTVAL, ‘AAAAB’);
SQL> INSERT INTO TESTE VALUES (SEQ_TESTE.NEXTVAL, ‘AAAAC’);
SQL> COMMIT;
SQL> SELECT * FROM TESTE;
A B
1 AAAAA
2 AAAAB
3 AAAAC
Para saber o valor corrente da seqüência:
SQL> SELECT SEQ_TESTE.CURRVAL FROM DUAL;
CURRVAL
3
Para você usar o CURRVAL é necessário que a Seqüencia tenha sido submetido a pelo menos um .NEXTVAL, caso contrário você obterá a seguinte mensagem de erro:
SQL> CREATE SEQUENCE SEQ_TESTE2 INCREMENT BY 1;
SQL> SELECT SEQ_TESTE2.CURRVAL FROM DUAL;
SELECT SEQ_TESTE2.CURRVAL FROM DUAL
*
ERRO na linha 1:
ORA-08002: a seqüência SEQ_TESTE2.CURRVAL ainda não foi definido nesta sessão
Bom, acho que por enquanto é só isso.
Atenciosamente,