Posts
Pode criar livremente. Mas qual é seu caso exatamente?
Segue exemplo genérico:
CREATE SEQUENCE seq_teste1 MINVALUE 1;
CREATE SEQUENCE seq_teste2 MINVALUE 1;
SELECT nextval(´seq_teste1´) as proximo_seq1;
SELECT nextval(´seq_teste2´) as proximo_seq2;
É o seguinte, eu tenho uma tabela onde a chave primária é composta por um tipo, um código e o ano. O tipo pode ser 1 ou 2 e para cada tipo eu tenho que gerar um código sequencial que precisa ser zerado a cada início de ano. Pensei que se eu tivesse dois sequenciais numa tabela, uma para gerar o código do tipo 1 e outra para gerar o código do tipo 2 seria uma solução?
Obrigada.
Nesse tipo de caso prefiro usar Select Max mesmo. Ou seja:
select coalesce(max(campo_B), 0) + 1 as novo_seq from tabela where campo_A = :campo_A
Onde o campo_B está sendo incrementado a partir do campo_A.
Ok, vou tentar assim. Obrigada.
Ah, e crie índice para cada um desses campos separadamente, senão pode ficar lento qdo a base crescer.
Olha só, eu gostaria de saber se tem como criar duas sequences pro mesmo campo numa mesma tabela onde dependendo do caso eu gero uma sequence ou outra?
Explique melhor seu caso na prática. Como mostrei no primeiro exemplo vc pode criar sequences independente do campo ou tabela, atribuindo o próximo valor retornado da sequence onde desejar.
Consegui resolver conforme você me disse, estava fazendo confusões em relação a sequence. Criei duas sequences independentes e gero ela conforme o tipo e atribuo ao código. Esse problema está resolvido. Obrigada.
Juliana.