Inserir zeros a esquerda de um campo firebird

Android

Firebird

30/09/2016

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

Curtidas 0

Respostas

Luiz Santos

Luiz Santos

30/09/2016

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
GOSTEI 0
Dalton_bat

Dalton_bat

30/09/2016

Obrigado, tirei os relacionamentos e rodei novamente deu certo.
att
GOSTEI 0
POSTAR