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

Eduardo Pereira atilaedu em gmail.com
Ter Jun 18 17:07:15 -03 2013


Pode ser assim tambem:

/* Tabela: TB_ESTADO */

CREATE TABLE TB_ESTADO (
    "cod_estado" INTEGER NOT NULL,
    "desc_estado" VARCHAR (50) CHARACTER SET WIN1252 COLLATE WIN1252,
    "sigla_estado" CHAR (2) CHARACTER SET WIN1252 COLLATE WIN1252,
    "dt_cadastro" TIMESTAMP);



/* Primary keys definition */

ALTER TABLE TB_ESTADO ADD CONSTRAINT PK_TB_ESTADO PRIMARY KEY
("cod_estado");

ou

/* Tabela: TB_ESTADO */

CREATE TABLE TB_ESTADO (
    "cod_estado" INTEGER NOT NULL,
    "desc_estado" VARCHAR,
    "sigla_estado" CHAR (2),
    "dt_cadastro" TIMESTAMP,
CONSTRAINT PK_TB_ESTADO PRIMARY KEY ("cod_estado")
);



Em 18 de junho de 2013 16:45, Patricia Aparecida Ayres <
patricia.ayres em bol.com.br> escreveu:

> 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
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>



-- 
Eduardo



Mais detalhes sobre a lista de discussão lista