erro trigger
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.
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
Curtidas 0
Respostas
Wilson Junior
21/05/2010
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.
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.
GOSTEI 0
Sérgio
21/05/2010
"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.
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.
GOSTEI 0
Wilson Junior
21/05/2010
Por um acaso o nome da sua tabela tem acento?
"alter table usuário alter cod_usuario type numeric(11,2)"
Espero ter colaborado.
"alter table usuário alter cod_usuario type numeric(11,2)"
Espero ter colaborado.
GOSTEI 0
Wilson Junior
21/05/2010
Outra coisa, se o campo Cod_Usuario estiver sendo referenciado em uma FOREIGN KEY ele vai dar erros também.
Espero ter colaborado.
Espero ter colaborado.
GOSTEI 0
Sérgio
21/05/2010
a nome não tem acento,
sendo o campo uma fk, como devo proceder?
GOSTEI 0
Wilson Junior
21/05/2010
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.
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.
GOSTEI 0