[firebase-br] having

José Mauricio Barbisan Zottis zottissistemas em gmail.com
Quinta Março 31 07:17:24 -03 2022


Oi Luiz, Obrigado pelo retorno, eu acredito, que depois do seu
esclarecimento, ficou claro pra mim que era por conta de transações abertas
por outros usuários pois eu comitei e fechei tudo o que estava aberto no
IBExperet, inclusive até o Delphi eu fechei(no desespero kkkkk).

Muitíssimo obrigado.

Em qua., 30 de mar. de 2022 às 22:27, Luiz Fernando Trevisan <
luizztrevisan em gmail.com> escreveu:

> Comigo aconteceu esse mesmo problema quando ia criar índices únicos assim.
>
> No meu caso era uma tabela que existiam registros duplicados, precisei
> fazer o select e apagar eles
> Após apagar e fazer o commit da transação, ao tentar criar o índice
> recebia a mensagem que existiam registros duplicados
> Consegui criar o índice após desconectar todos os usuários da base
>
> A conclusão que cheguei é que, por mais que eu tenha apagado os
> duplicados, existiam outras conexões no banco de dados, principalmente
> transações abertas que ainda "enxergavam" aqueles registros, já que foram
> abertas antes do delete dos duplicados.
>
>
> Já nas outras vezes que precisei sempre segui essa mesma metodologia de
> desconectar todos os usuários.
>
> Algo interessante que notei é o seguinte, se tentava criar o índice e
> existiam registros duplicados a mensagem apontava qual era a chave do
> registro duplicado... Após apagar eles, com outras transações ativas, a
> mensagem passava a ser genérica, existem registros duplicados, mas sem
> dizer qual era a chave do registro.
> Sendo assim toda vez que a mensagem era genérica, sabia que era por ter
> outras conexões ativas.
>
> Espero que isso possa esclarecer o porquê após fazer a desconexão de todos
> os usuários conseguiu criar normalmente.
> Talvez no seu caso não foram nem outras conexões, mas talvez o ibexpert
> com um select aberto ou até mesmo a tabela aberta em uma aba.
>
>
>
> Em qua., 30 de mar. de 2022 21:59, José Mauricio Barbisan Zottis via lista
> <lista em firebase.com.br> escreveu:
>
>> Boa noite Carlos, O IBEXpert retornava a mensagem que havia registro
>> Duplicado.
>> Consegui fazendo um ShutDown na base e depois de reerguer a base, o script
>> rodou, acho que é um bug do IBEXpert.
>>
>> Por isso o SQL não aparecia nenhum registro duplicado, pois realmente não
>> tinha.
>>
>> Em qua., 30 de mar. de 2022 às 21:34, Carlos H. Cantu via lista <
>> lista em firebase.com.br> escreveu:
>>
>> > Qual é a mensagem exata de erro apresentada quando você tenta criar a
>> > unique
>> > key?
>> >
>> > Qual o resultado e o PLAN do comando abaixo?
>> >
>> > select C.*
>> > from CLI_TELEFONE C
>> > where exists(select *
>> >              from CLI_TELEFONE C2
>> >              where C2.COD_CLIENTE = C.COD_CLIENTE and
>> >                    C2.COD_TPFONE = C.COD_TPFONE and
>> >                    C2.rdb$db_key <> C.rdb$db_key)
>> >
>> > []s
>> > Carlos H. Cantu
>> > eBook Guia de Migração para o FB 4 - www.firebase.com.br/guiafb4.php
>> > www.FireBase.com.br - www.firebirdnews.org - blog.firebase.com.br
>> >
>> > JMBZvl> FB 2.5
>> >
>> > JMBZvl> Bom dia.
>> > JMBZvl> Pessoal, abri uma base nova em um cliente e copiei os dados de
>> uma
>> > tabela
>> > JMBZvl> via script de inserts, mas ao tentar gerar uma chave única da
>> erro
>> > dizendo
>> > JMBZvl> que tem registro duplicado.
>> >
>> > JMBZvl> alter table CLI_TELEFONE
>> > JMBZvl> add constraint UNQ1_CLI_TELEFONE
>> > JMBZvl> unique (COD_CLIENTE,COD_TPFONE);
>> >
>> > JMBZvl> estou tentando identificar qual registro está duplicado usando o
>> > comando
>> > JMBZvl> having, mas retorna zero
>> > JMBZvl> alguém saberia como identificar o registro que está duplicado?
>> >
>> > JMBZvl> select count(*),
>> > JMBZvl>        c.cod_cliente,
>> > JMBZvl>        c.cod_tpfone
>> > JMBZvl> from cli_telefone C
>> > JMBZvl> group by c.cod_cliente,
>> > JMBZvl>          c.cod_tpfone
>> > having count(*) >> 1
>> >
>> >
>> > ______________________________________________
>> > 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://www.firebase.com.br/pesquisa_lista.html
>> >
>>
>>
>> --
>> ______________________________________________
>> 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://www.firebase.com.br/pesquisa_lista.html
>>
>

--


Mais detalhes sobre a lista de discussão lista