Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

phcouto

Evitar lançamento duplicado

Recommended Posts

Boa tarde, minha dúvida deve ser bem simples, pois não achei gente com a mesma dúvida que eu pela net, ou talvez não soube procurar.

 

Eu estou montando um sistema de controle de médicos, e o administrador tem que lançar, dia, mes, hora1, hora2, hora3, hora4 e hora5, mas não quero que ele lance um mesmo dia duas vezes (Ex: não existem dois dias 21 em setembro).

 

Tentei fazer uma consulta ao bd e depois fazer um if com o resultado antes de rodar a query que vai inserir , mas não sei o que usar de argumento para o if.

 

Desde já agradeço a atenção.

Paulo Henrique

 

+++++++ RESOLVIDO +++++++

 

QUERO AGRADECER A TODOS QUE VISITARAM MINHA DÚVIDA MAS JÁ RESOLVI.

ESTAVA FALTANDO SÓ UMA COISINHA NO MEU SCRIPT E AGORA ACHEI. VALEU MESMO!

 

Me desculpem, mas não resolvi o problema e achei que tinha postado no dia que o walace me pediu para postar o que fiz. Fiquei com o projeto parado, mas agora estou de volta e vou fazer o que Suissa passou.

 

Até mais, e mais uma vez mil desculpas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

declare var_dia dateselect dia into var_dia from agenda(seila) where dia=NEW.diaif(var_dia = NEW.dia) then //testa c o dia existeERROelse //se não existe então insereinsert into agenda(dia) value(NEW.dia)var_dia eh uma variavel q guardara o valor do dia caso ele existadia eh o tal do campo q você quer testar

Compartilhar este post


Link para o post
Compartilhar em outros sites

declare var_dia dateselect dia into var_dia from agenda(seila) where dia=NEW.diaif(var_dia = NEW.dia) then //testa c o dia existeERROelse //se não existe então insereinsert into agenda(dia) value(NEW.dia)var_dia eh uma variavel q guardara o valor do dia caso ele existadia eh o tal do campo q você quer testar

Caro SUISSA, não entendi, como vou usar esta variável para testar se o dia já está lançado, sou meio verde ainda, mas dias tem os mesmos todo mês, este é meu maior problema.Desde já agradeço a sua atenção.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tá meio complicada sua explicação, não existe o mesmo dia 21 de dezembro, mas existem 24 horas dentro deste, não pode fazer um lançamento em horas diferentes no mesmo dia ?Bom, antes de fazer select pra ver se o registro já foi lançado você pode assegurar que isto não aconteça colocando o campo data na sua chave primária, assim ao tentar inserir uma data que já exista o banco vai retornar um erro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vou tentar explicar melhor:Vou lançar todos os meses a escala diária de médicos, mas atualmente o banco de dados aceita digitar 10/10 duas vezes, se eu colocar para testar o dia e o mês ele simplesmente não mostra nada e não deixa mais eu lançar o 10/11.Será que fui mais claro?Paulo Henrique

Compartilhar este post


Link para o post
Compartilhar em outros sites

declare var_dia dateselect dia into var_dia from agenda(seila) where dia=NEW.diaif(var_dia = NEW.dia) then //testa c o dia existeERROelse //se não existe então insereinsert into agenda(dia) value(NEW.dia)var_dia eh uma variavel q guardara o valor do dia caso ele existadia eh o tal do campo q você quer testar

Caro SUISSA, não entendi, como vou usar esta variável para testar se o dia já está lançado, sou meio verde ainda, mas dias tem os mesmos todo mês, este é meu maior problema.Desde já agradeço a sua atenção.
então isso aki declare var_dia dateselect dia into var_dia from agenda(seila) where dia=NEW.diavai selecionar o dia no banco caso esse dia seja igual ao dia que esta sendo inserido que eh p NEW.diaentãoif(var_dia = NEW.dia) then //testa c o dia existeERROelse //se não existe então insereinsert into agenda(dia) value(NEW.dia)deu pa entender?isso numa trigger before insert logico neh

Compartilhar este post


Link para o post
Compartilhar em outros sites

kra se você naum ker q o valor seja repetido coloca o campo como chave primária...naum se é isso msm só se eu entendi mal!t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

mas uma data não pode ser chave primária ehhehehpoder ateh pode não, mas não deve ser feito

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.