-
A sintaxe correta é a seguinte:
references nome_da_tabela(Nome_campo_Da_chave_primária_da_outra_tabela)
references departamento(codDep)
Portanto o correto é a alternativa E.
-
Apenas lembrando que é possível adicionar uma foreign key após a criação da tabela, usando o seguinte comando:
ALTER TABLE funcionario ADD CONSTRAINT codDepfk FOREIGN KEY (codDep) REFERENCES departamento (codDep);
Fonte: https://www.postgresql.org/docs/8.2/static/sql-altertable.html
-
no final da tabela também poderia ser assim:
constraint FK_NOME foreign key (codDep) references departamento(codDep)
-
Nessa questão temos um exemplo de criação de uma chave estrangeira sem que se nomeie explicitamente a restrição. Veja que podemos criar uma chave estrangeira utilizando somente a informação de qual é o atributo referenciado, desde que isso seja feito dentro da definição de um dos atributos da tabela referenciadora. Veja a sintaxe:
CREATE TABLE salario (
idFuncionario INT REFERENCES Funcionario(idFuncionario),
salario FLOAT NOT NULL
);
A tabela em questão irá ter o atributo idFuncionario como chave estrangeira, que referencia a tabela Funcionario através do atributo idFuncionario desta segunda.
-
Usando "references" já diz que é chave primária em outra tabela e, portanto, não precisa dizer que é foreign key nesta tabela.