Hướng dẫn tạo khóa chính (Primary key) trong MySQL

Khi chúng ta tạo ra một bảng, trong một bảng có rất nhiều dòng. Để phân biệt giữa các dòng thì chúng ta cần có một cái gì đó nó không trùng lặp để xác định. Vậy cái không trùng lặp đó các bạn hiểu đó là khóa chính hay còn gọi là Primary key trong MySQL.

Khóa chính là gì?

Khóa chính trong MySQL và tất cả các hệ quản trị khác như SQL Server, SQL Lite…thì nó đều tương tự.Khóa chính là thuộc tính duy nhất để phân biệt từng lớp. Ở đây tôi nhấn mạnh từ duy nhất nghĩa là nó không trùng lặp.

Kinh nghiệm khi chọn khóa chính?

Thông thường khi các bạn tạo ra một bảng thì cần xác định khóa chính cho bảng đó, tất nhiên trong một bảng chỉ có duy nhất một khóa chính mà thôi.

Với khóa chính theo kinh nghiệm của mình nó thường là id của bảng đó, và id đó tất nhiên là số, bởi vì khi chúng ta xác định đó là id của bảng thì chắc chắn rằng nó phải tự động tăng.Nghĩa là khi thêm một record hay một dòng thì việc id của mỗi dòng đó sẽ tăng lên.Ví dụ chúng ta đang có dòng dữ liệu hiện tại có id =5, vậy khi thêm một dòng dữ liệu nữa thì nó sẽ tự động tăng lên 6,7,8…

Với một khóa chính bởi vì nó tự động tăng lên rồi nên việc nó có giá trị NULL là không thể.

Tạo khóa chính (Primary key) trong MySQL

Để tạo khóa chính cho một bảng thì các bạn dùng từ khóa PRIMARY KEY đằng sau cột các bạn muốn làm khóa chính.

Tạo trong lệnh tạo bảng Create Table

Để chọn field cho khóa chính ta sẽ đặt từ khóa primary key đằng sau column đó, ví dụ:

CREATE TABLE news(
  id_news INT(255) NOT NULL PRIMARY KEY,
  name VARCHAR(255) NOT NULL, active INT(1) DEFAULT 0
) ENGINE = InnoDB;

Ngoài ra các bạn có thể dùng cách thứ 2 bằng cách là sau cùng các cột, cột nào các bạn muốn làm khóa chính cho bảng đó thì  dùng lệnh PRIMARY KEY(column), truyền vào tên cột muốn làm khóa chính.

Ví dụ như sau :

CREATE TABLE news(
  id_news INT(255) NOT NULL ,
  name VARCHAR(255) NOT NULL, active INT(1) DEFAULT 0, PRIMARY KEY (id_news)
) ENGINE = InnoDB;

Một số trường hợp như khi tạo bảng mà chúng ta quên tạo khóa chính cho bảng đó thì các bạn sẽ dùng lệnh Alter để tạo khóa chính nhé.

Sử dụng lệnh Alter để tạo khóa chính (Primary key)

Cú pháp :

ALTER TABLE table_name ADD PRIMARY KEY(column);

Ví dụ:

// Đầu tiên tạo bảng chưa có khóa chính
CREATE TABLE users (
  id_news(255) NOT NULL,
  name VARCHAR(255) NOT NULL, active INT(1) DEFAULT 0
) ENGINE = INNODB;
// sau đó thêm khóa chính bằng cách sử dụng ALTER
ALTER TABLE news ADD PRIMARY KEY(id_news)

Xóa khóa chính trong bảng (Drop Primary Key)

Khi làm một việc gì đó, như xây dựng một ngôi nhà rất khó và lâu đúng không nào, tuy nhiên kho phá một ngồi nhà thì rất nhanh và dễ. Tương tự trong thục tế khi xóa một khóa chính rất đơn giản.Chúng ta sử dụng lệnh ALTER TABLE kết hợp với DROP để xóa, ví dụ:

	
ALTER TABLE news DROP PRIMARY KEY

Chúc các bạn thực hiện thành công!

Các bạn có thể gửi bình luận trao đổi ở dưới bài viết nhé.

0 0 đánh giá
Đánh giá bài viết
Theo dõi
Thông báo của
guest
0 Góp ý
Phản hồi nội tuyến
Xem tất cả bình luận
x