Relacionamento de Tabelas PostgreSql onde tabela Authors, ISBN e Titulo estejam interligadas?

2 respostas
postgresql
J

Alguém pode me ajudar eu tenho que criar um banco de dados postgresql onde tabela Authors, ISBN e Titulo estejam interligadas?

CREATE TABLE titulo(
    isbn INTEGER,
    titulo VARCHAR,
    nedicao INTEGER,
    direitoautorais VARCHAR,
    PRIMARY KEY (isbn)
);

CREATE TABLE isbn(
    id SERIAL,
    isbn INTEGER,
    FOREIGN KEY (titulo) REFERENCES titulo (isbn),
    PRIMARY KEY (id)
    
);

CREATE TABLE authors (
    id SERIAL,
    nome VARCHAR,
    sobrenome VARCHAR,
    FOREIGN KEY (isbn) REFERENCES isbn (id),
    PRIMARY KEY (id)
);

INSERT INTO titulo (title, nedicao, direitoautorais)
VALUES
   ('Java How Program', '7', '2007' );

SELECT isbn, titulo, nedicao, direitoautorais
FROM titulo;

INSERT INTO isbn (isbn)
values
    ('[telefone removido]');

INSERT INTO authors (nome, sobrenome)
VALUES
    ('Harvey', 'Deitel');

SELECT id, nome, sobrenome
FROM authors;

O Codigo apresenta o seguinte erro: ERROR: column “titulo” referenced in foreign key constraint does not exist
********** Error **********

ERROR: column “titulo” referenced in foreign key constraint does not exist
SQL state: 42703

2 Respostas

J

Bom Dia!

Você está fazendo referência a coluna título na tabela isbn, e esta coluna é inexistente em sua tabela, para adicionar uma foreign key, antes deve-se adicionar o atributo em sua tabela dependente antes de criar a constraint foreign key, exemplo:

CREATE TABLE COR(
IDCOR INTEGER,
NMCOR VARCHAR(20),
PRIMARY KEY(IDCOR)
);

CREATE TABLE PRODUTO(
IDPRODUTO INTEGER,
IDCOR INTEGER,
NMPRODUTO VARCHAR(60),
PRIMARY KEY(IDPRODUTO),
FOREIGN KEY(IDCOR) REFERENCES COR(IDCOR)
);

neste exemplo acima uma cor pode estar presente em vários produtos, mas cada produto só pode ter uma única cor por vez!

boa sorte, abraços!

J

Obrigado

Criado 12 de dezembro de 2016
Ultima resposta 13 de dez. de 2016
Respostas 2
Participantes 2