>데이터 베이스 >MySQL 튜토리얼 >MySQL에서 테이블을 생성할 때 외래 키 제약 조건을 작성하는 방법

MySQL에서 테이블을 생성할 때 외래 키 제약 조건을 작성하는 방법

下次还敢
下次还敢원래의
2024-04-22 19:52:001001검색

MySQL 외래 키 제약 조건 구문은 다음과 같습니다. ALTER TABLE child_table ADD FOREIGN KEY(foreign_key_column) REFERENCES parent_table(primary_key_column), 이는 두 테이블 간의 관계 무결성을 보장합니다. 외래 키 제약 조건의 기능은 다음과 같습니다. 1. 데이터 무결성: 제한된 하위 테이블 참조가 상위 테이블에 있어야 합니다. 2. 계단식 업데이트: 상위 테이블 기본 키 값이 변경되면 모든 참조를 자동으로 업데이트합니다. 테이블 기본 키 값이 삭제되면 모든 참조가 자동으로 삭제됩니다.

MySQL에서 테이블을 생성할 때 외래 키 제약 조건을 작성하는 방법

MySQL 외래 키 제약 조건 구문

MySQL에서는 외래 키 제약 조건을 사용하여 두 테이블 간의 관계 무결성을 보장합니다. 구문은 다음과 같습니다.

<code>ALTER TABLE child_table
ADD FOREIGN KEY (foreign_key_column)
REFERENCES parent_table (primary_key_column)</code>

위치:

  • child_table: 외래 키 제약 조건을 추가해야 하는 테이블입니다.
  • child_table:需要添加外键约束的表。
  • foreign_key_columnchild_table 中引用 parent_table 主键的列。
  • parent_table:被引用的表,其主键用于定义约束。
  • primary_key_columnparent_table 中被引用的主键列。

外键约束的作用

外键约束有助于确保以下事项:

  • 数据完整性:防止在子表中插入没有在父表中存在的引用。
  • 级联更新:当父表中的主键值更改时,自动更新所有引用子表中的值。
  • 级联删除:当父表中的主键值被删除时,自动删除所有引用子表中的值。

示例

假设我们有两个表:ordersorder_items

<code>CREATE TABLE orders (
  order_id INT NOT NULL AUTO_INCREMENT,
  customer_id INT NOT NULL,
  PRIMARY KEY (order_id)
);

CREATE TABLE order_items (
  item_id INT NOT NULL AUTO_INCREMENT,
  order_id INT NOT NULL,
  product_id INT NOT NULL,
  PRIMARY KEY (item_id),
  FOREIGN KEY (order_id) REFERENCES orders (order_id)
);</code>

在此示例中,order_items 表的外键约束确保了每个 order_id 值在 orders 表中都存在。这意味着我们无法在 order_items 表中插入没有在 orders 表中存在的 order_idforeign_key_column: parent_table의 기본 키를 참조하는 child_table의 열입니다.

parent_table: 제약 조건을 정의하는 데 기본 키가 사용되는 참조 테이블입니다. 🎜primary_key_column: parent_table에서 참조되는 기본 키 열입니다. 🎜🎜외래 키 제약 조건의 역할🎜🎜🎜외래 키 제약 조건은 다음을 보장하는 데 도움이 됩니다. 🎜🎜🎜🎜데이터 무결성: 🎜상위 테이블에 존재하지 않는 하위 테이블에 대한 삽입을 방지합니다. 🎜🎜계단식 업데이트: 🎜상위 테이블의 기본 키 값이 변경되면 참조되는 모든 하위 테이블의 값을 자동으로 업데이트합니다. 🎜🎜계단식 삭제: 🎜상위 테이블의 기본 키 값이 삭제되면 하위 테이블에서 참조되는 모든 값이 자동으로 삭제됩니다. 🎜🎜Example🎜🎜🎜두 개의 테이블이 있다고 가정합니다: ordersorder_items: 🎜rrreee🎜이 예에서 외부 order_items 테이블의 키 제약 조건은 각 order_id 값이 orders 테이블에 존재하도록 보장합니다. 이는 orders 테이블에 존재하지 않는 order_items 테이블에 order_id 값을 삽입할 수 없음을 의미합니다. 🎜

위 내용은 MySQL에서 테이블을 생성할 때 외래 키 제약 조건을 작성하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.