최신 웹 개발 튜토리얼
 

SQL FOREIGN KEY 제약


SQL FOREIGN KEY 제약 조건

다른 테이블의 PRIMARY KEY 하나의 테이블 점에서 FOREIGN KEY.

다음의 예제와 외부 키를 설명 할 수 있습니다. 다음 두 개의 테이블 봐 :

"Persons" 테이블 :

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

"Orders" 테이블 :

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

참고이 "P_Id" 의 칼럼 "Orders" 받는 테이블 점 "P_Id" 에서 열 "Persons" 테이블.

"P_Id" 에서 열 "Persons" 표에있는 PRIMARY KEY 인 "Persons" 테이블.

"P_Id" 의 칼럼 "Orders" 표에 FOREIGN KEY이다 "Orders" 테이블.

외래 키 제약 조건은 테이블 간의 링크를 파괴 할 작업을 방지하는 데 사용됩니다.

그것이 가리키는 테이블에 포함 된 값 중 하나 일하기 때문에 외래 키 제약은 또한, 외부 키 컬럼에 삽입되는 잘못된 데이터를 방지 할 수 있습니다.


테이블 만들기에 SQL FOREIGN KEY 제약 조건

다음 SQL은에 FOREIGN KEY 만듭니다 "P_Id" 때 열을 "Orders" 테이블이 작성 :

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)
)

, 다음과 같은 SQL 구문을 사용, 여러 열에서 FOREIGN KEY 제약 조건을 정의하는 FOREIGN KEY 제약 조건의 이름을 허용하려면 :

MySQL / SQL Server / Oracle / MS Access:

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)
)

ALTER 표에 SQL FOREIGN KEY 제약 조건

에 FOREIGN KEY 제약 조건을 만들려면 "P_Id""Orders" 테이블이 이미 생성되어, 다음 SQL을 사용 :

MySQL / SQL Server / Oracle / MS Access:

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

, 다음과 같은 SQL 구문을 사용, 여러 열에서 FOREIGN KEY 제약 조건을 정의하는 FOREIGN KEY 제약 조건의 이름을 허용하려면 :

MySQL / SQL Server / Oracle / MS Access:

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

외래 키 제약 조건을 삭제하려면

외국 KEY 제약 조건을 삭제하려면 다음 SQL을 사용 :

MySQL:

ALTER TABLE Orders
DROP FOREIGN KEY fk_PerOrders

SQL Server / Oracle / MS Access:

ALTER TABLE Orders
DROP CONSTRAINT fk_PerOrders