"Criando" auto incremento

4 respostas
F

bem pessoal gostaria de saber a opiniao de vcs sobre um assunto, como eu não posso ter 2 campos com auto-incremento no banco, eu queria criar um, digamos uma soma somente, vou tentar explicar melhor.
na tabela de empresa, tenho o campo idEmpresa que é auto incremento, e quero deixar tambem o campo nroRelac auto incremento, nroRelac é um numero de relaçãoes que foram pagas para essa empresa, posso ter na relação nro 1 vários pagamentos, podemos dizer que o numero da relação é o mes, so que quando chega em 12, nao volta em 1, continua…
então eu queria fazer uma soma dentro de um IF ou FOR sei lah.
para que quando eu clicar no botão NOVA RELAÇÃO, ele pegue a variavel que esta somando, e jogue em um campo o nro da proxima relação.

espero ter explicado direito.
obrigado
dyego

4 Respostas

gerdec

vc pode criar um for do tipo:

int i = 0;

	for (i = 0; i < nroRelac; i++) {
			if (i > 12) {
				i = 1;
			}
		}
	   }

ficaria mais ou menos assim, pois quando ele atingir o numero 12 ele receber 1 continua sempre com intervalo de 1 a 12 espero ter ajudado

Obs: a galera aqui do forum não gosta muito de criar codigo para as pessoas quebrei seu galho mais tente sempre colocar um pré codigo com o erro e assim as duvidas seram sanadas blz

luistiagos

cara não sei bem se é isto que eu entendi o que esta querendo dizer mas… se oq vc precisa é a cada nova relação incrementar um valor em um campo numRelações vc poderia simplismente consultar este valor e atualiza-lo somando + 1…

xGambit

Bom, eu sempre deixo as coisas mais complicadas do que são mas vamos lá às dúvidas:

Este campo nroRelac é algo único, independente do registro da empresa?
Suponhamos que eu use um SELECT * FROM empresas_relacoes, e este me retorna 2 registros:

Tabela Empresa-Relacões

id=1 | nroRelac=5 | empresa=Nest
id=2 | nroRelac=7 | empresa=Bones

Quando vc for somar 1 novo nroRelac para a empresa Nest ele será 6 ou 8?

Se for 6, então, antes de ir atualizar, vc faz como o luistiagos disse acima, busca o último nroRelac da empresa em questão e soma 1.
Se for 8 (pois já existe um 7 na tabela) basta buscar o primeiro registro de um select nroRelac ordenado por nroRelac DESC, e somar 1.

Viajei muito?

maquiavelbona

Acho que você está querendo algo que não é para isso, mas procure por sequences.

Até!

Criado 7 de fevereiro de 2008
Ultima resposta 7 de fev. de 2008
Respostas 4
Participantes 5