Duvidas Banco de Dados e jsp

Olá comunidade…

Galera é o seguinte tenho um programa em jsp que devera criar um codigo automaticamente sequencial tipo um campo codigo de um cadastro de pessoa, quando vou fazer novo cadastro ele seleciono o maior numero no banco e somo mais um assim insiro um novo registro, mas quando a pessoa é excluida este numero fica vazio… como resolver este problema??? O banco faz controle disto eu estou usando o postgre.

valew

Adriano

Oi Adriano,

Vale a pena dar uma lida sobre servlets e mvc antes de continuar.

Depois, um campo sequencial funciona exatamente como voce falou, nao existe solucao. Se voce nao quer “buracos”, vc deve fazer isso na mao (procura-los)

Abraco

Guilherme

Vc poderia criar uma rotina que seria executada após a exclusão de um registro para renumerar todos os registros que ficaram… O problema é que pode demorar um pouco, e se o campo é de código acho que deveria ser único e evitar mudar…

Ola Adriano,

Trabalho com desenvolvimento Oracle a alguns anos e o que posso dizer pra vc é q a melhor maneira para trabalhar com chave primaria sequencial em uma tabela é criar uma sequence de banco e ao fazer os inserts referenciar essa sequence.

Ex.:

create sequence minha_sequence start with 1 increment by 1 NOCYCLE;

create table minha_tabela (cd_chave_primaria number(8),
                           ds_descritivo         varchar2(10));

insert into minha_tabela (minha_sequence.NEXTVAL,
                          'Teste');

Para o banco essa é a forma mais rápida e segura para trabalhar com chaves sequenciais. Quanto aos “buracos”… Simplesmente não se preocupe com eles. Se você trabalha com um banco de dados relacional, não há necessidade alguma de tratar furos na numeração. O postgre tem suporte à sequences. Veja a sintax correta e boa sorte.

-l30-

[quote=leo.luz]Ola Adriano,

Trabalho com desenvolvimento Oracle a alguns anos e o que posso dizer pra vc é q a melhor maneira para trabalhar com chave primaria sequencial em uma tabela é criar uma sequence de banco e ao fazer os inserts referenciar essa sequence.

Ex.:

create sequence minha_sequence start with 1 increment by 1 NOCYCLE;

create table minha_tabela (cd_chave_primaria number(8),
                           ds_descritivo         varchar2(10));

insert into minha_tabela (minha_sequence.NEXTVAL,
                          'Teste');

Para o banco essa é a forma mais rápida e segura para trabalhar com chaves sequenciais. Quanto aos “buracos”… Simplesmente não se preocupe com eles. Se você trabalha com um banco de dados relacional, não há necessidade alguma de tratar furos na numeração. O postgre tem suporte à sequences. Veja a sintax correta e boa sorte.

-l30-[/quote]

valew Leo…

Gostei desta propriedade e vou procurar a sintaxe correta para postgre.

Obrigado a todos que me ajudaram…
abraços