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:

CREATE TABLE Orders
(
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:

CREATE TABLE Orders
(
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:

CREATE TABLE Orders
(
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:

ALTER TABLE Orders
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:

ALTER TABLE Orders
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:

ALTER TABLE Orders
DROP FOREIGN KEY fk_PerOrders

SQL Server / Oracle / MS Access:

ALTER TABLE Orders
DROP CONSTRAINT fk_PerOrders