Alter Table firebird

3 respostas
D

Galera,

estou tendo um problema sério com banco de dados. Criei uma tabela A e uma outra tabela B. Até ai tudo blz…

Mas A tem uma foreign key pra B e é aí que complica. Por que quando vou dar um alter table em A é retornado um erro dizendo que B está em uso.

Alguém pode me ajudar???

Estou usando Firebird 1.5

ALTER TABLE BOLETIM ADD CONSTRAINT FK_BOLETIM_TIPO FOREIGN KEY (TIPO_BOLETIM) REFERENCES TIPO_BOLETIM (IDENTIFICADOR);

OBS.: fiz todos esses alter table em casa. O erro só aconteceu no ambiente de produção.

obrigado

3 Respostas

grprado

Quem está fazendo o alter table? Você ou um Hibernate?

O Firebird somente deixa que você execute alter table se existir apenas uma conexão ativa. Pelo menos comigo e com o FB 1.5 é assim que funciona.

Além disso, em ambiente de produção provavelmente você usa um pool de conexões, o que pode corroborar para a existência de multiplas conexões.

Voltando ao exemplo do hibernate, se você utiliza-o com C3PO para gerenciar as conexões e se quem altera a base é o hbm2dll há uma solução fácil para o problema. Altere o número mínimo de conexões ativas do c3PO para 1.

D

Não cara, não estou usando o hibernate para fazer o alter table! Estou fazendo direto do SQL Editor do IBExpert.

O pior é que a tabela B acabou de ser criada, e o firebird diz que está em uso.

D

Já consegui fazer o alter table. O problema foi o seguinte: existe uma outra aplicação que está acessando a mesma base de dados e ela estava rodando no momento em que eu estava fazendo o alter table. Então o firebird não permite que um alter table para fazer uma FK seja efetuado.

Criado 23 de novembro de 2006
Ultima resposta 28 de nov. de 2006
Respostas 3
Participantes 2