Inserir zeros a esquerda de um campo firebird

30/09/2016

0

Atualmente tenho duas tabelas a tprodutos e tmovitens, onde o campo codprd tem 6 digitos. Ex: 000001, 000002, 000003, ...
Preciso deixar o campo codprd com 10 digitos. Ex: 000000001, 000000002, 000000003, ...

Tentei rodar o comando:
update TPRODUTO set codprd = reverse(substring(reverse('0000000000'||codprd) from 1 for 10))
update TMOVITENS set codprd = reverse(substring(reverse('000000000'||codprd) from 1 for 10))

Porem o comando não roda, esta retornando essa msg no ibxpert
violation of FOREIGN KEY constraint "".
violation of FOREIGN KEY constraint "FKTMOVITENS_CODPRD" on table "TMOVITENS".
Foreign key reference target does not exist.
Dalton_bat

Dalton_bat

Responder

Posts

30/09/2016

Luiz Santos

Dalton, bom dia.
Nesse caso, o que acontece é que essa tabela possui um relacionamento e você só está tentando alterar a CHAVE dela.

NO caso existe um relacionamento entre TMOVITENS e TPRODUTO.
Pela descrição do erro (e um pouco de dedução lógica) descobrimos que quem recebe a chave é a tabela TMOVITENS.

Se realmente for necessária essa alteração, comece por essa tabela.
E na sequencia na tabela TPRODUTO

Se continuar dando erro, desative/remova o relacionamento antes de fazer a alteração.

O mais sensato, se isso for um sistema produtivo, seria criar colunas novas com esse formato de dados.

GRande abraço
Responder

30/09/2016

Dalton_bat

Obrigado, tirei os relacionamentos e rodei novamente deu certo.
att
Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar