Geração de um inteiro

4 respostas
R

Olá pessoal.

Sou novo em JAVA e estou estudando sozinho.

Porém estou com uma dúvida no sistema que eu estou desenvolvendo. Não chega ser uma dúvida específica da linguagem JAVA, porém a linguagem pode ter alguma coisa que facilite na solução do meu problema.

Bom, o meu problema é o seguinte.

Estou precisando gerar um código (PK de um banco de dados). Esse código é específico e não somente auto-incrementação.

O código que eu tenho que montar funciona da seguinte maneira:

Eu tenho uma categoria de dados e uma tabela. Essa categoria possui código auto-incremental normal. Sem problemas até aqui.

Em outra tabela, ficam as subcategorias da tabela que eu descrevi acima. Porém nessas subcategorias, o código deve ser de um tipo específico da seguinte forma:

CodigoDaCategoriaPrincipal concatenado Código_Da_Ultima_Subcategoria++

Porém eu não tenho estou conseguindo desenvolver um algorítmo que faça isso.

Alguém tem alguma sugestão?

4 Respostas

A

Você pode primeiro dar um select na subcategoria, incrementar e colocar o insert, ou pode fazer o seguinte… na query de insert, colocar algo assim:

insert into SubCategoria (idCategoria, seqSubCategoria, desc)
select ?, max(seqSubCategoria) + 1, ?
from SubCategoria where idCategoria = ?

acertando para os nomes dos seus campos e tabelas…

Falou,

Armando

R

armando:
Você pode primeiro dar um select na subcategoria, incrementar e colocar o insert, ou pode fazer o seguinte… na query de insert, colocar algo assim:

insert into SubCategoria (idCategoria, seqSubCategoria, desc)
select ?, max(seqSubCategoria) + 1, ?
from SubCategoria where idCategoria = ?

acertando para os nomes dos seus campos e tabelas…

Falou,

Armando

Então, acho que você não entendeu. Vou exemplificar para ver se facilita o entendimento.

Supondo que minha tabela categoria é assim:

Codigo	Nome
1	Esportes		
2	Cinema
3	Televisão
4	Internet

E minha tabela sub-categoria é assim:

Codigo	Categoria	Nome
11	1		Futebol
12	1		Natação
21	2		Suspense
31	3		Séries
32	3		Novelas
33	3		Programas
41	4		Grupos
42	4		Fóruns
43	4		Sites

Reparem que o código da subcategoria da subcategoria é formado pelo digito do Codigo da categoria (primeira tabela) + um número incremental da subcategoria.

Tomando como exemplo a categoria “Esportes”.

Esportes possui código 1.
Portanto o código das subcategorias de Esportes deverão sempre começar com 1 e em seguida vem o número da subcategoria.
Portanto se eu fosse adicionar mais um subcategoria para a categoria Esportes, o novo código seria 13. O 1 representaria a categoria e 3 a subcategoria.

Acho que agora ficou mais claro o problema que eu estou tendo.

Eu estou precisando de um algoritmo para gerar esse código da subcategoria.

valeu!

A

Se vc quer isso então acho que não tem jeito… vc tem que dar um select, ver o maior, concatenar na programação mesmo e mandar inserir… você precisa mesmo disso? Não pode fazer do jeito incremental normal e concatenar só pra exibir? Esse esquema aí tá com cara de coisa que depois vai dar trabalho à toa… tipo… se passar de dez…

R

Preciso porque eu estou trabalhando em cima das tabelas já prontas. Não foi eu quem desenvolveu as tabelas. Se eu fosse desenvolver as tabelas, com certeza usaria o modo incremental.

Por isso estou nessa dificuldade.

Se tiver mais sugestões, eu agradeço.

Obrigado.

Criado 14 de dezembro de 2006
Ultima resposta 14 de dez. de 2006
Respostas 4
Participantes 2