Latest web development tutorials

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