Skip to main content
Announcements
Live today at 11 AM ET. Get your questions about Qlik Connect answered, or just listen in. SIGN UP NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

usar autonumberhash para criacao de chave primaria

Pessoal Bom dia.. gostaria da seguinte opiniao.

Estou tentando criar uma carga incremental, porem minha chave primaria é composta por 5 campos, se eu os concatenar e utilizar o autonumberhash consigo manter a unicidade a cada carga ?

25 Replies
rphpacheco
Creator III
Creator III

Eu utilizo apenas o AutoNumber() para criar as minhas chaves. Ele funciona muito bem!

O importante Paulo é certificar-se de que você está pegando todos os campos indexadores da tabela para a criação desta chave. Fazendo isso com certeza irá funcionar 
Abraço!

Clever_Anjos
Employee
Employee

Se estiver fazendo uma carga incremental e sua chave for armazenada no QVD, provavelmente terá problemas.

O valor do campo carregado em um Autonumber/autonumberhash é gerado dinamicamente a cada recarga.

Not applicable
Author

Clever, certeza ?

Olhando a guia de ajuda do qlikview :

"Calcula um hash de 128 bits dos valores combinados de entrada de expressão e retorna um valor inteiro exclusivo para cada valor de hash distinto encontrado durante a execução do script"

Clever_Anjos
Employee
Employee

So seu caso, como tem 5 campos chave, recomendo concatená-los todos gerando uma chave, salvar essa chave no QVD para poder fazer sua carga incremental.

Depois simplesmente não carregue este campo na aplicação final, gerando a chave com autonumber(hash) se for o caso

rphpacheco
Creator III
Creator III

Bem lembrado Clever!

O ideal então seria montar uma carga incremental utilizando um campo temporal e de preferência indexador, realizando  uma condicional (se Variável_Data(Hoje) < Campo_Temporal, concatenar com QVD já existente, senão desconsiderar).


Clever_Anjos
Employee
Employee

"Durante a execução do script"

Os valores que já estão no QVD não seriam recalculados

Not applicable
Author

Clever ...

Tentei esta opcao concatenando as PK no metodo LOAD, porem quando tento concatenar os dados carregados anteriormente  e aplico a condicao "WHERE NOT EXISTS(PK)" desconsidera registros incorretamente ..

Inclusive olhei varios exemplos, como abaixo ...

http://sertaz.blogspot.com.br/2009/01/qlikview-carga-incremental.html

Sempre é baseado em uma unica PK ....

Not applicable
Author

Raphael aplico este conceito ..

Meu BD para cada registro há uma data de versao do registro.

Então vou incrementado sempre aonde a data de versao do registro foi maior que a data de versao armazenada anteriormente ...

Not applicable
Author

E se eu utilizar o hash256 .. ??