[firebase-br] RES: RES: RES: campos duplicados

Reijanio Nunes Ribeiro rnribeiro em gmail.com
Dom Dez 19 08:59:05 -03 2010


acho que consegui quero só o aval dos amigos pois não sei se vai dar certo
mais vejam como fiz

CREATE OR ALTER PROCEDURE VERIF_PROD (
    p_idprod varchar(18),
    p_idtab integer)
as
begin
for select idprod,  idtab from estoque
into :p_idprod, :p_idtab  do
begin
  if(Exists(select * from preco_tabela WHERE idprod =:p_idprod and idtab
=:p_idtab))then
  begin
exception produtoexistente;
   end
    else
    begin
    insert into preco_tabela(idprod, idtab)
    values
    (
    :p_idprod ,
    :p_idtab
     );
  end
end


Em 19 de dezembro de 2010 07:39, Reijanio Nunes Ribeiro <rnribeiro em gmail.com
> escreveu:

> seguinte pessoal a sintaxe do sql seria assim
> select * from preco_tabela where idprod = :pcod and idtab = :ptab
> assim seria perfeito agora como como fazer uma stored procedure  que impeça
> a inserção destes items caso ja existam na tabela
>
> Em 19 de dezembro de 2010 07:25, Reijanio Nunes Ribeiro <
> rnribeiro em gmail.com> escreveu:
>
> seria um teressante um select que fizesse o laço na tabela e verificasse a
>> existencia dos dois campos alguem tem alguma ideia de como fazer isso achar
>> dois campos em linhas identicos e tentar localizar e impedir de inserir esse
>> select é que to apanhnado pois um campo so é facil mais dois assim não estou
>> dando conta
>>
>> Em 19 de dezembro de 2010 07:20, Reijanio Nunes Ribeiro <
>> rnribeiro em gmail.com> escreveu:
>>
>> robson a questão é que vou te exemplificar
>>> tenho
>>> idprod         idtab
>>> 001             1
>>> 001             2
>>>
>>> se colocar um indice nele vai dar erro por que ele so vai aceitar um
>>> unico idprod e idtab, vou tentar gerar uma stored procedure que leia od dois
>>> campos e gere uma exceção, ou uma sintaxe que faça isso, creio que sejam
>>> minhas opções ja que não posso amarra-las por indices unicos pois esta
>>> tabela podem conter varios produtos iguais e tabelas diferentes
>>>
>>> Em 18 de dezembro de 2010 17:10, Robson Catunda <
>>> robson.catunda em gmail.com> escreveu:
>>>
>>> Reijanio,
>>>>
>>>> volto a insistir.. crie um índice único.
>>>>
>>>> Delete os duplicados antes de executar o comando abaixo, pois se já
>>>> existirem duplicações o indice não será criado.
>>>>
>>>> *ALTER TABLE* *NOME_DA_TABELA ADD CONSTRAINT* *NOME_DO_INDICE* *UNIQUE
>>>> (IDTAB, IDPROD);
>>>> *
>>>> Esse indice amarra codigo de tabela e codigo de produto exatamente como
>>>> vc
>>>> quer. Vai poder ter o mesmo produto em varios codigos de tabelas
>>>> distintas,
>>>> mas não poderá ter o mesmo codigo de produto mais de uma vez no mesmo
>>>> código
>>>> de tabela.
>>>> ______________________________________________
>>>> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
>>>> Para saber como gerenciar/excluir seu cadastro na lista, use:
>>>> http://www.firebase.com.br/fb/artigo.php?id=1107
>>>> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>>>>
>>>
>>>
>>
>



Mais detalhes sobre a lista de discussão lista