Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Foreign Key

Poderia me dar um exemplo onde eu atribuo a foreign key no create table? Além deste exemplo, a atribuição da foreign key no alter table, porém direto no add column: alter table add column id [..]. Além disso, é obrigatório atribuir um 'apelido' a chave estrangeira como é feito no exercício (FK_Compras_CompradoresID)?

2 respostas
solução!

Segue o exemplo para incluir o FK no create table:

CREATE TABLE Pedidos
(
    pedido_id int NOT NULL,
    numero int NOT NULL,
    cliente_id int,
    PRIMARY KEY (pedido_id),
    CONSTRAINT fk_pedidos_clientes FOREIGN KEY (cliente_id)
REFERENCES Clientes(cliente_id)
)

O exemplo acima relaciona os pedidos aos clientes por meio da chave estrangeira.

No ALTER TABLE pode ser usado assim:

ALTER TABLE Pedidos
ADD CONSTRAINT fk_pedidos_clientes
FOREIGN KEY (cliente_id)
REFERENCES Clientes(cliente_id)

O uso do apelido não é obrigatório, mas facilita a localização e manipulação das chaves estrangeiras por comandos de consulta do SQL. Isto é útil para a administração do banco de dados.

Para create table:

CREATE TABLE Orders
(
O_Id int NOT NULL PRIMARY KEY,
OrderNo int NOT NULL,
P_Id int FOREIGN KEY REFERENCES Persons(P_Id)
)

Para alter table:

ALTER TABLE Orders
ADD FOREIGN KEY (P_Id)
REFERENCES Persons(P_Id)

Não é obrigatório dar apelido, mas se quiser fazer isso, no create troque a linha da criação da FOREIGN KEY por isso:

CONSTRAINT fk_PerOrders FOREIGN KEY (P_Id)
REFERENCES Persons(P_Id)

E em alter table deixe assim:

ALTER TABLE Orders
ADD CONSTRAINT fk_PerOrders
FOREIGN KEY (P_Id)
REFERENCES Persons(P_Id)

Faça o teste pra garantir, mas acho que é isso aí.

[]'s.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software