SQL FOREIGN KEY restrição
SQL FOREIGN KEY restrição
FOREIGN KEY em uma tabela de pontos para outra chave primária da tabela.
Vamos usar um exemplo para explicar a chave estrangeira. Considere as duas tabelas a seguir:
"Pessoas" tabela:
P_Id | LastName | FirstName | Address | City |
---|---|---|---|---|
1 | Hansen | Ola | Timoteivn 10 | Sandnes |
2 | Svendson | Tove | Borgvn 23 | Sandnes |
3 | Pettersen | Kari | Storgt 20 | Stavanger |
"Pedidos" tabela:
O_Id | OrderNo | P_Id |
---|---|---|
1 | 77895 | 3 |
2 | 44678 | 3 |
3 | 22456 | 2 |
4 | 24562 | 1 |
Por favor note, coluna "ordens" mesa "p_id" ponto de coluna "Pessoas" mesa "p_id".
"Pessoas" coluna da tabela "p_id" é a "Pessoas" tabela primária KEY.
"Pedidos" tabela coluna "p_id" é a "Pedidos" tabela de chave externa.
restrição chave externa é utilizada para evitar danos para a ligação entre o comportamento da mesa.
restrição FOREIGN KEY também impede que dados ilegais em uma coluna de chave estrangeira, ele deve ser um porque aponta para a mesa.
SQL restrição FOREIGN KEY CREATE TABLE quando
O seguinte SQL quando a tabela "Pedidos" é criado para criar uma restrição FOREIGN KEY na coluna "p_id":
MySQL:
(
O_Id int NOT NULL,
OrderNo int NOT NULL,
P_Id int,
PRIMARY KEY (O_Id),
FOREIGN KEY (P_Id) REFERENCES Persons(P_Id)
)
SQL Server / Oracle / MS Access:
(
O_Id int NOT NULL PRIMARY KEY,
OrderNo int NOT NULL,
P_Id int FOREIGN KEY REFERENCES Persons(P_Id)
)
Para citar restrição de chave estrangeira e definir uma pluralidade de restrição de coluna FOREIGN KEY, use a seguinte sintaxe SQL:
MySQL / SQL Server / Oracle / MS Acesso:
(
O_Id int NOT NULL,
OrderNo int NOT NULL,
P_Id int,
PRIMARY KEY (O_Id),
CONSTRAINT fk_PerOrders FOREIGN KEY (P_Id)
REFERENCES Persons(P_Id)
)
SQL FOREIGN KEY ALTER TABLE quando
Quando a tabela "Pedidos" foi criado para colunas criar restrição FOREIGN KEY "p_id", por favor, use o seguinte SQL:
MySQL / SQL Server / Oracle / MS Acesso:
ADD FOREIGN KEY (P_Id)
REFERENCES Persons(P_Id)
Para citar restrição de chave estrangeira e definir uma pluralidade de restrição de coluna FOREIGN KEY, use a seguinte sintaxe SQL:
MySQL / SQL Server / Oracle / MS Acesso:
ADD CONSTRAINT fk_PerOrders
FOREIGN KEY (P_Id)
REFERENCES Persons(P_Id)
Desfazer restrição FOREIGN KEY
Para eliminar uma restrição FOREIGN KEY, use o seguinte SQL:
MySQL:
DROP FOREIGN KEY fk_PerOrders
SQL Server / Oracle / MS Access:
DROP CONSTRAINT fk_PerOrders