> 데이터 베이스 > MySQL 튜토리얼 > 여러 열에 FOREIGN KEY 제약 조건을 어떻게 배포할 수 있나요?

여러 열에 FOREIGN KEY 제약 조건을 어떻게 배포할 수 있나요?

王林
풀어 주다: 2023-09-04 12:17:02
앞으로
1106명이 탐색했습니다.

我们如何在多列上分配 FOREIGN KEY 约束?

MySQL을 사용하면 테이블의 여러 열에 FOREIGN KEY 제약 조건을 추가할 수 있습니다. 조건은 하위 테이블의 각 외래 키가 다른 상위 테이블을 참조해야 한다는 것입니다.

Example

아래와 같이 'cust_unq_id' 필드에 기본 키 제약 조건이 있는 'customer2'라는 테이블이 있다고 가정합니다. -

mysql> describe customer2;
+-------------+-------------+------+-----+---------+-------+
| Field       | Type        | Null | Key | Default | Extra |
+-------------+-------------+------+-----+---------+-------+
| cust_id     | int(11)     | YES  |     | NULL    |       |
| First_name  | varchar(20) | YES  |     | NULL    |       |
| Last_name   | varchar(20) | YES  |     | NULL    |       |
| City        | varchar(10) | YES  |     | NULL    |       |
| cust_unq_id | int(11)     | NO   | PRI | 0       |       |
+-------------+-------------+------+-----+---------+-------+
5 rows in set (0.06 sec)
로그인 후 복사

우리는 이미 Orders1이라는 테이블이 이미 있습니다. 에 외래 키 제약 조건이 있습니다. 상위 테이블 'customer'를 참조하는 'Cust_id' 필드.

mysql> describe orders1;
+--------------+-------------+------+-----+---------+-------+
| Field        | Type        | Null | Key | Default | Extra |
+--------------+-------------+------+-----+---------+-------+
| order_id     | int(11)     | NO   | PRI | NULL    |       |
| Product_name | varchar(25) | YES  |     | NULL    |       |
| orderdate    | date        | YES  |     | NULL    |       |
| Cust_id      | int(11)     | YES  | MUL | NULL    |       |
| cust_unq_id  | int(11)     | YES  |     | NULL    |       |
+--------------+-------------+------+-----+---------+-------+
5 rows in set (0.04 sec)
로그인 후 복사

이제 다음 ALTER TABLE 쿼리를 사용하여 상위 테이블 "customer2"를 참조하는 "cust_unq_id" 필드에 또 다른 외래 키 제약 조건을 추가할 수 있습니다.

mysql> Alter table orders1 add FOREIGN KEY(cust_unq_id) REFERENCES Customer2(Cust_unq_id);
Query OK, 0 rows affected (0.25 sec)
Records: 0 Duplicates: 0 Warnings: 0

mysql> describe orders1;
+--------------+-------------+------+-----+---------+-------+
| Field        | Type        | Null | Key | Default | Extra |
+--------------+-------------+------+-----+---------+-------+
| order_id     | int(11)     | NO   | PRI | NULL    |       |
| Product_name | varchar(25) | YES  |     | NULL    |       |
| orderdate    | date        | YES  |     | NULL    |       |
| Cust_id      | int(11)     | YES  | MUL | NULL    |       |
| cust_unq_id  | int(11)     | YES  | MUL | NULL    |       |
+--------------+-------------+------+-----+---------+-------+
5 rows in set (0.06 sec)
로그인 후 복사

위 결과 집합에서 볼 수 있듯이, "orders1" 테이블에는 두 개의 외래 키 제약 조건이 있습니다. 하나는 "cust_id"에 대한 것이고 다른 하나는 "cust_unq_id" 외래 키 제약 조건에 대한 것입니다.

위 내용은 여러 열에 FOREIGN KEY 제약 조건을 어떻게 배포할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:tutorialspoint.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿