Free Trial

Fórum

Output Error - Primary key is required for update option

jfscarvalho
Átomo

Fala pessoal, boa tarde.

Estou enfrentando um erro no alteryx  na saída do update "Primary key is required for update option", isso também acontece mesmo quando não tenho nenhum registro para ser atualizado (nesse cenário apenas a saída de insert recebe registros).

 

Informações importantes:

1. Estou usando SQL SERVER;

2. Conexão do tipo OleDB (vi alguns casos na comunidade informando que esse tipo de conexão as vezes perde a referência de PK);

 

Pontos já verificados:

1. Conexão da saída (conexão|||banco.schema.tabela) e permissão no banco de dados;

2.  A coluna PK está sendo passada para o output com o mesmo nome que tenho na tabela destino e com o tipo de dados correto (SQL: BIGINT e Alteryx: Int64), essa coluna é identity 1:1;

3. Todos os registros que passam no update existe no banco de dados;

4. Já recriei a tabela, inseri novos registros, não tenho problema de duplicidade;

5. Já criei nova conexão ODBC e também recriei minha conexão OleDB;

6. Recriei o input que chama a tabela que receberá o update;

 

Alguém tem alguma ideia do que pode ser? 

 

Desde já agradeço a ajuda

6 RESPOSTAS 6
dougperez
Quasar

Fala meu mano!

 

Tenta isso:

https://community.alteryx.com/t5/Alteryx-Designer-Discussions/primary-Key-required-for-Update-option...

 

Just for others who look for solution :

 

odbc:DSN=COnnectionName|||SchemaName.TableName -> This is required for Updates/Deletes

odbc:DSN=COnnectionName|||TableName -> Insert was working without schema name

 

Even though we have hard coded the schema name in ConnectionName, it does not pickup for Updates. The error was also misleading.  I am sure its a bug in Alteryx. It should not work differently for different type.

jfscarvalho
Átomo

Douglas, conforme falei no grupo do whatsapp.
A solução proposta não funcionou, ao alterar o tipo de conexão para "quick connection", parte dos registros foram atualizados, porém me deparei com outro erro e ao analisar mais profundamente, identifiquei que havia apenas uma linha com a PK nula, o que eu não tinha identificado antes via browser, pois pela quantidade de registros essa 1 linha não aparecia na análise de nulos gerado por esse componente.

Agradeço sua colaboração, 

carlosteixeira
15 - Aurora
15 - Aurora

@jfscarvalho boa tarde tudo bem?

 

Pelo que eu vi na sua imagem você está usando um BLOCK UNTIL DONE antes de gravar na sua tabela.

Geralmente usamos isso quando estamos lendo uma tabela e tentando gravar na mesma tabela.

 

O BLOCK UNTIL DONE muitas vezes é utilizado da maneira errada.

 

O que eu acho e que  tá ocorrendo é o seguinte, você está lendo a tabela e antes que ela feche (COMMIT) ele tá tentando gravar na mesma e isso vai dar erro.

 

Tenta fazer o seguinte, na saída 1 do seu BLOCK UNTIL DONE coloca uma saída para gerar um YXDB

Na saída 2 do seu BLOCK UNTIL DONE coloca a saída pro seu banco de dados.

 

Veja se funciona.

 

Abraços

 

Carlos A Teixeira
jfscarvalho
Átomo

Carlos, 

O problema não era exatamente a conexão e sim uma linha que estava coma a PK nula, ao alterar o tipo de conexão para "quick connection", parte dos registros foram atualizados, porém me deparei com outro erro e ao analisar mais profundamente, identifiquei que havia apenas uma linha com a PK nula, o que eu não tinha identificado antes via componente browser, pois pela quantidade de registros total essa 1 linha não aparecia na análise de nulos gerado por esse componente.

Agradeço sua colaboração, 

luis-romano
Átomo

Estou com o mesmo problema na Versão: 2022.1.1.40869, porém na Versão: 2021.2.2.45235 funciona normalmente.

Espero que nas próximas versões esse problema seja solucionado.

FláviaB
Alteryx Community Team
Alteryx Community Team

Obrigada pelo feedback, @luis-romano

@CristianoJ, sabe dizer se esse é um problema conhecido? 

Flávia Brancato
Rótulos