FOREIGN KEY

Firebird

07/11/2003

Saudações caros colegas!

Estou com algunhas dúvidas. Vejam o codigo abaixo.

* Table: TCD, Owner: SYSDBA */

CREATE TABLE ´TCD´
(
´CODCD´INTEGER NOT NULL,
´ESTILO´CHAR(25),
´TITULO´CHAR(20),
´ARTISTA´CHAR(30),
´BANDA´CHAR(30),
´NUMMUSIC´INTEGER,
PRIMARY KEY (´CODCD´)
);
SET TERM ^ ;


/* Triggers only will work for SQL triggers */

CREATE TRIGGER ´TESTE´ FOR ´TCD´
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
NEW.CODCD = GEN_ID(CODIGO,1);
END
^

COMMIT WORK ^
SET TERM ;^




/* Table: TMUSICAS, Owner: SYSDBA */

CREATE TABLE ´TMUSICAS´
(
´CODMUSICA´INTEGER NOT NULL,
´NOME´CHAR(30),
´AUTOR´CHAR(30),
´DATA´DATE,
´CODCD´INTEGER,
´TEMPO´TIME,
PRIMARY KEY (´CODMUSICA´)
);
ALTER TABLE ´TMUSICAS´ ADD FOREIGN KEY (´CODCD´) REFERENCES TCD (´CODCD´) ON UPDATE CASCADE ON DELETE CASCADE;
SET TERM ^ ;


/* Triggers only will work for SQL triggers */

CREATE TRIGGER ´TESTE2´ FOR ´TMUSICAS´
ACTIVE BEFORE INSERT POSITION 0
as
begin
NEW.CODCD = GEN_ID(NUM,1);
END
^

COMMIT WORK ^
SET TERM ;^

Toda vez que tento inserir algun novo registro na
tabela TMUSICAS, vem a seguinte menssagem:

violation of foreign key constraint ´INTEG_9´ on table ´TMUSICAS´

Lembrando que a tabela TCD já possui alguns registros. O que pode está
errado? :(


Leaolima

Leaolima

Curtidas 0

Respostas

Midas

Midas

07/11/2003

vc ao inserir dados na tabela tmusicas vc esta gerando um codigo na trigger que ainda não existe na tabela de cds. Ai acontece a violação de chave estrangeira


GOSTEI 0
Leaolima

Leaolima

07/11/2003

Obrigado amigo, resolvi o meu problema, cometi um erro primario. :)


GOSTEI 0
POSTAR