Latest web development tutorials

SQL FOREIGN KEY制約

SQL FOREIGN KEY制約

別のテーブルの主キーに1つの表の点でFOREIGN KEY。

のは、外部キーを説明するために例を使用してみましょう。 次の2つの表を考えてみます。

「人」の表:

P_Id LastName FirstName Address City
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendson Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger

"受注"テーブル:

O_Id OrderNo P_Id
1 77895 3
2 44678 3
3 22456 2
4 24562 1

、 "受注"テーブル "P_ID」欄ポイント"人 "テーブル" P_ID」欄にご注意ください。

"人"テーブル "P_ID」欄は、「人」の表PRIMARY KEYです。

"受注"テーブル "P_ID」欄には、"受注 "テーブルの外部キーです。

FOREIGN KEY制約は、テーブルの動作との間の接続への損傷を防止するために使用されます。

それは、テーブル内の点1でなければならないため、FOREIGN KEY制約は、外部キー列に不正なデータを防ぐことができます。


SQL FOREIGN KEY制約は、時のCREATE TABLE

"受注"テーブルには、「P_ID」列にFOREIGN KEY制約を作成するために作成され、以下のSQL:

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アクセス:

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

FOREIGN KEY制約に名前を付け、列FOREIGN KEY制約を複数定義するには、次のSQL構文を使用します。

MySQLの/ SQL Serverの/ Oracleの/ MSアクセス:

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とき

列はFOREIGN KEY制約」P_ID "を作成するための"受注 "テーブルが作成されている場合には、次のSQLを使用してください:

MySQLの/ SQL Serverの/ Oracleの/ MSアクセス:

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

FOREIGN KEY制約に名前を付け、列FOREIGN KEY制約を複数定義するには、次のSQL構文を使用します。

MySQLの/ SQL Serverの/ Oracleの/ MSアクセス:

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


FOREIGN KEY制約を元に戻します

FOREIGN KEY制約を削除するには、次のSQLを使用します。

MySQLの:

ALTER TABLE Orders
DROP FOREIGN KEY fk_PerOrders

SQL Serverの/ Oracleの/ MSアクセス:

ALTER TABLE Orders
DROP CONSTRAINT fk_PerOrders