postgresql libpq inserção de linha vazia sem motivo

votos
0

Eu estou usando a biblioteca libpq em C para acessar meu banco de dados PostgreSQL. A aplicação insere um pedaço de dados alimentados a partir de uma fila. Quando há uma grande quantidade de dados e está inserindo muito rapidamente insere aleatoriamente e linha vazia na tabela. Antes mesmo de executar a inserção I certifique-se de que o comprimento do texto a ser inserido é maior do que um. Existe uma razão pela qual isso está acontecendo aleatoriamente? É dose não acontecer quando há menos dados.

* Eu gostaria de notar, que isso não acontece em Mysql, PostgreSQL única

Publicado 19/05/2009 em 22:40
fonte usuário
Em outras línguas...                            


1 respostas

votos
1

Veja o comentário de Milen A. Radev. Deveria ter sido uma resposta. Você não deve permitir linhas vazias.

Certamente, pelo menos, uma coluna pode ter uma restrição que iria fazer com que o inserto para falhar. Em seguida, o aplicativo pode imprimir / log o erro com diagnósticos suficientes para que você possa descobrir o que está acontecendo, e em que condições.

Sem a adaptação do acima exposto, determinar se todos os dados de sua fila foi inserido corretamente, ou se algumas linhas estão em falta. Ou seja, ver se algumas linhas estão sendo traduzidos para inserts vazias. Se você ver que alguns dados está causando isso, você pode encontrar o que os dados problema tem em comum.

Você está usando preparados, inserções parametrizadas, ou você está construindo uma cadeia de instrução de inserção SQL cada vez e executar essa? Se você está construindo cadeias SQL para executar, então você deve certificar-se de que você está citando personagem / colunas de cordas binários corretamente com as rotinas fornecidas pela libpq. Ou mudar para outro método de preparação da inserção e passar os dados como parâmetros onde pode ser devidamente citados por própria libpq. Isso também pode melhorar o desempenho.

Respondeu 24/05/2009 em 17:14
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more