Ir para conteúdo

POWERED BY:

Arquivado

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

Mr Crowley

Evitar cadastro repetido

Recommended Posts

Ola pessoal

 

tenho que fazer uma procedure que faz o cadastro em um tabela

 

ate ai, tudo bem, funciona

porem, eu nao posso permitir registros duplicados

 

entao tentei usar IF

porem, nao to conseguinto

 

eu tentei

 

SELECT if (exists ( select 1 from tbprodutocategoria WHERE ProdutoCategoriaNome = P_ProdutoCategoriaNome )
	,
		0
	,
		INSERT INTO tbprodutocategoria(ProdutoCategoriaNome,ProdutoCategoriaDescricao,ProdutoCategoriaImagemCaminho)
		VALUES (P_ProdutoCategoriaNome,P_ProdutoCategoriaDescricao,P_ProdutoCategoriaImagemC
aminho)
)

e tentei isso tb

 

IF(P_ProdutoCategoriaNomeTemp == '')THEN
		INSERT INTO tbprodutocategoria(ProdutoCategoriaNome,ProdutoCategoriaDescricao,ProdutoCategoriaImagemCaminho)
		VALUES (P_ProdutoCategoriaNome,P_ProdutoCategoriaDescricao,P_ProdutoCategoriaImagemC
aminho)
END IF

porem isso me gera erro

 

nao entendi direito como funciona o IF no MYSQL

 

como eu faria pra impedir o cadastro em duplicidade no MYSQL?

estou usando procedures

 

abs..

 

T+

Compartilhar este post


Link para o post
Compartilhar em outros sites

Prog

 

nao entendia sua pergunta

 

 

giesta

A chave unica ja foi criada, porem, ao fazer o cadastro eu tenho um erro certo, eu queria prever isso fazendo primeiro a verificação se existe ou nao o registro.Tendeu?

 

 

abs

T+

Compartilhar este post


Link para o post
Compartilhar em outros sites

Há alguma restrição quanto a fazer este controle na aplicação?

Acho q o Prog se referiu a fazer essa verificação no proprio sistema/aplicação e nao no BD...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Posso estar errado, mas esse tipo de coisa nao eh tarefa do banco, e nem deve ser implementado no mesmo. O banco serve para garantir acesso rapido e integridade dos dados, e concordo com o camarada Prog, isso deve ser feito pela indagacao em si

Compartilhar este post


Link para o post
Compartilhar em outros sites

Posso estar errado, mas esse tipo de coisa nao eh tarefa do banco, e nem deve ser implementado no mesmo. O banco serve para garantir acesso rapido e integridade dos dados, e concordo com o camarada Prog, isso deve ser feito pela indagacao em si

discordo, ate por que existe tratamente de erros em Banco de dados(try catch).

e outra, existe a Proteção em Profundidade.

 

e também deve fica mais pesado

vou ter que acessar o metodo que faz a pesquisa no banco e pegar esse resultado de existe ou nao no Banco, e depois fazer o acesso ao banco para cadastro

so nisso fiz 2 acesso ao banco, teoricamente abri e fechei 2 conexoes e as fechei.

 

pode me dizer que faco os 2 no mesmo metodo, porem, isso vai contra a separação de responsabilidades também.

 

obrigado pela opniao de todos

 

fico no aguardo de novas

 

abs

T+

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.