Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

MySQL Thêm khóa ngoại

Khóa ngoại giúp thiết lập các mối quan hệ cơ sở dữ liệu và duy trì tính toàn vẹn của tham chiếu. Chúng giúp liên kết một hoặc nhiều cột trong một bảng này với một bảng khác. Đây là cách thêm khóa ngoại trong MySQL.

Cách thêm khóa ngoại trong MySQL

Dưới đây là các bước để thêm khóa ngoại trong MySQL. Bạn có thể thêm ràng buộc khóa ngoại bằng cách sử dụng câu lệnh CREATE TABLE hoặc ALTER TABLE trong SQL.

Đây là cú pháp để tạo khóa ngoại trong MySQL.

Sử dụng BẢNG ALTER

ALTER TABLE table_name 
ADD CONSTRAINT constraint_name 
FOREIGN KEY (foreign_key_name,...) 
REFERENCES parent_table(column_name,...);

Trong truy vấn trên, table_name là bảng mà bạn muốn thêm khóa ngoại. tên_làm_cân là tên của ràng buộc khóa ngoại. Foreign_key_name,… là danh sách các cột khóa ngoại.

parent_table là bảng mà Foreign_key của bạn tham chiếu đến, theo sau là danh sách các tên cột trong bảng đó

Phần thưởng Đọc:Cột Bảng thay thế MySQL

Sử dụng TẠO BẢNG

CREATE TABLE table_name(
    column_name column_description,
    CONSTRAINT constraint_name
    FOREIGN KEY (foreign_key_name,...) 
        REFERENCES parent_table(column_name,...)
)

Trong truy vấn trên, table_name là bảng mà bạn muốn thêm khóa ngoại. tên_làm_cân là tên của ràng buộc khóa ngoại. Foreign_key_name,… là danh sách các cột khóa ngoại.

parent_table là bảng mà Foreign_key của bạn tham chiếu đến, theo sau là danh sách các tên cột trong bảng đó.

Xin lưu ý , trong ALTER TABLE, bạn cần sử dụng ADD CONSTRAINT trong khi trong CREATE TABLE, bạn chỉ cần sử dụng từ khóa CONSTRAINT.

Phần thưởng đã đọc:Ràng buộc về chìa khóa ngoại lai của MySQL

MySQL ADD FOREIGN KEY Ví dụ

Giả sử bạn có các bảng sau.

Hãy tạo 2 bảng ( danh mục đơn đặt hàng ) và thêm ràng buộc khóa ngoại vào đơn đặt hàng , tham chiếu đến id cột trong danh mục bảng.

mysql> create table categories(id int auto_increment primary key,name varchar(255));

mysql> create table orders(id int auto_increment primary key,category_id int,
 CONSTRAINT fk_cat 
 FOREIGN KEY (category_id) 
 REFERENCES categories(id));

mysql> describe orders;
+-------------+---------+------+-----+---------+----------------+
| Field       | Type    | Null | Key | Default | Extra          |
+-------------+---------+------+-----+---------+----------------+
| id          | int(11) | NO   | PRI | NULL    | auto_increment |
| category_id | int(11) | YES  | MUL | NULL    |                |
+-------------+---------+------+-----+---------+----------------+

Phần thưởng đã đọc:MySQL DROP UNIQUE CONSTRAINT

Hãy xem cùng một ví dụ sử dụng câu lệnh ALTER TABLE.

mysql> create table orders(id int auto_increment primary key,category_id int);

mysql> create table categories(id int auto_increment primary key,name varchar(255));

mysql> ALTER TABLE orders
     ADD CONSTRAINT fk_cat
     FOREIGN KEY (category_id)
     REFERENCES categories(id);

mysql> describe orders;
+-------------+---------+------+-----+---------+----------------+
| Field       | Type    | Null | Key | Default | Extra          |
+-------------+---------+------+-----+---------+----------------+
| id          | int(11) | NO   | PRI | NULL    | auto_increment |
| category_id | int(11) | YES  | MUL | NULL    |                |
+-------------+---------+------+-----+---------+----------------+

Ubiq giúp dễ dàng trực quan hóa dữ liệu trong vài phút và theo dõi trong trang tổng quan thời gian thực. Thử nó ngay hôm nay!

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để lấy dữ liệu JSON từ MySQL?

  2. CHỌN với nhiều điều kiện WHERE trên cùng một cột

  3. Khái niệm cơ bản về khóa ngoại trong MySQL?

  4. Cảnh báo:mysqli_query () mong đợi tham số 1 là mysqli, tài nguyên đã cho

  5. Tham khảo:Mẫu mã hoàn hảo sử dụng phần mở rộng MySQL là gì?