Fórum erro trigger #378074

21/05/2010

0

Boa tarde pessoal Estou tentando executar o seguinte comando em um banco de dados: alter table usuário alter cod_usuario type numeric porem retorna a seguinte mensagem de erro: This operation is not defined for system tables.
unsuccessful metadata update.
MODIFY RDB$RELATION_FIELDS failed.
action cancelled by trigger (1) to preserve data integrity.
Cannot update index segment used by an Integrity Constraint. Como faço para descobrir qual é essa trigger, e como desativá-la para poder alterar o tipo de dado? Obrigado.   Obs. Não fui eu que fiz o BD portanto não conheço detalhes do mesmo.  
Sérgio

Sérgio

Responder

Posts

21/05/2010

Wilson Junior

Você deve definir o "tamanho" do seu numeric.
Numeric( P, S )
Onde :
  P é um valor de precisão;
  S é um valor da escala.

Por exemplo, Numeric(6,2) é um número que tem 4 dígitos antes da vírgula e 2 dígitos após o decimal.
Utilizando este exemplo o o seu código, ficaria assim: "alter table usuário alter cod_usuario type numeric(6,2)"

Espero ter colaborado.
Responder

Gostei + 0

21/05/2010

Sérgio

"alter table usuário alter cod_usuario type numeric(11,2)" retornou o seguinte erro:
ISC ERROR CODE:335544351   ISC ERROR MESSAGE: unsuccessful metadata update MODIFY RDB$RELATION_FIELDS failed action cancelled by trigger (1) to preserve data integrity Cannot update index segment used by an Integrity Constraint   Acredito que o problema seja mesmo a restrinção de integridade, mas agradeço de qualquer forma.    
Responder

Gostei + 0

21/05/2010

Wilson Junior

Por um acaso o nome da sua tabela tem acento?
"alter table usuário alter cod_usuario type numeric(11,2)"

Espero ter colaborado.
Responder

Gostei + 0

21/05/2010

Wilson Junior

Outra coisa, se o campo Cod_Usuario estiver sendo referenciado em uma FOREIGN KEY ele vai dar erros também.

Espero ter colaborado.
Responder

Gostei + 0

21/05/2010

Sérgio

a nome não tem acento, sendo o campo uma fk, como devo proceder?
Responder

Gostei + 0

21/05/2010

Wilson Junior

Terá que excluir as FK's e alterar o tipo do campo Usuario.Cod_Usuario e também de dos campos das outras tabelas que são as FK's, todos para o mesmo tipo, após crie novamente todas as FK's.

Lembrando, deve-se analisar muito bem antes de criar o banco de dados para não ocorrer este tipo de coisa. Sei que as vezes é muito difícil imaginar certas situações, mas fica aí um bom lembrete.

Espero ter colaborado.
Responder

Gostei + 0

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

Aceitar