[firebase-br] Criação de Foreign Key

Patricia Aparecida Ayres patricia.ayres em bol.com.br
Ter Jun 18 16:45:38 -03 2013


Boa Tarde,

Estou tendo dificuldades em criar uma Foreign Key em um banco de dados Firebird 1.5, através de um script.
Ocorre que é executado um Alter Table criando a Foreign Key ocorre um erro informando que a tabela de referencia está em uso.
O que devo fazer para que a Foreign Key seja criada? O que pode estar acontecendo?

O erro é o seguinte:

ISC ERROR CODE:335544351
ISC ERROR MESSAGE:
unsuccessful metadata update
object TB_BONUS is in use


O script que estou usando é este:

CREATE TABLE TB_BONUS
(
    CD_BONUS INTEGER NOT NULL,
    CD_SEMESTRE    VARCHAR(07) CHARACTER SET NONE NOT NULL,
    PROGRAMACAO VARCHAR(12) CHARACTER SET NONE NOT NULL,
    QT_ALUNOS INTEGER,
    QT_META_ALUNOS_NOVOS INTEGER,
CONSTRAINT "PK_BONUS" PRIMARY KEY ("CD_BONUS")
);
COMMIT;


CREATE TABLE TB_BONUS_PROFESSOR
(
    CD_BONUS INTEGER NOT NULL,
    CD_FUNCIONARIO    INTEGER NOT NULL,
    QT_ALUNOS_PROF INTEGER,
CONSTRAINT "PK_BONUS_PROFESSOR" PRIMARY KEY ("CD_BONUS","CD_FUNCIONARIO")
);
COMMIT;

ALTER TABLE TB_BONUS_PROFESSOR
ADD CONSTRAINT FK_TB_BONUS_PROFESSOR_1 FOREIGN KEY (CD_BONUS) REFERENCES TB_BONUS (CD_BONUS) ON UPDATE NO ACTION ON DELETE NO ACTION,
ADD CONSTRAINT FK_TB_BONUS_PROFESSOR_2 FOREIGN KEY (CD_FUNCIONARIO) REFERENCES FUNCIONARIOS (CD_FUNCIONARIO) ON UPDATE NO ACTION ON DELETE NO ACTION;
COMMIT;


Att.

Patrícia




Mais detalhes sobre a lista de discussão lista