Bài tập

CÁCH SỬ DỤNG TỰ ĐỘNG TĂNG (AUTO_INCREMENT) TRONG MySQL

Huy Erick

Tự động tăng: một tính năng quan trọng trong MySQL Trong thế giới cơ sở dữ liệu, tự động tăng là một chức năng quan trọng giúp tạo ra những giá trị số liên tiếp...

Tự động tăng: một tính năng quan trọng trong MySQL

Trong thế giới cơ sở dữ liệu, tự động tăng là một chức năng quan trọng giúp tạo ra những giá trị số liên tiếp cho các trường dữ liệu. Khi một dòng dữ liệu được chèn vào bảng, trường được thiết lập là tự động tăng sẽ tự động tạo ra các giá trị số tiếp theo.

Tự động tăng và mục đích sử dụng

Trong quá trình chuẩn hóa cơ sở dữ liệu, chúng ta thường lưu trữ dữ liệu trong nhiều bảng nhỏ, liên quan đến nhau bằng cách sử dụng khóa chính và khóa ngoại. Khóa chính cần phải là duy nhất vì nó là cơ sở xác định tính duy nhất trong cơ sở dữ liệu. Tuy nhiên, làm thế nào để đảm bảo rằng khóa chính luôn luôn duy nhất?

Một giải pháp khả thi là sử dụng công thức để tạo khóa chính và kiểm tra sự tồn tại của khóa trong bảng dữ liệu trước khi thêm dữ liệu. Tuy nhiên, cách làm này khá phức tạp và không hiệu quả. Thay vào đó, chúng ta có thể sử dụng tính năng tự động tăng của MySQL để tạo khóa chính. Tự động tăng chỉ được sử dụng với kiểu dữ liệu INT và hỗ trợ cả giá trị có dấu và không dấu.

Cú pháp sử dụng tự động tăng

Hãy xem ví dụ dưới đây để hiểu rõ hơn về cú pháp sử dụng tự động tăng:

CREATE TABLE `categories` (
 `category_id` int (11) AUTO_INCREMENT,
 `category_name` varchar (150) DEFAULT NULL,
 `remarks` varchar(500) DEFAULT NULL,
 PRIMARY KEY (`category_id`)
);

Trong ví dụ này, chúng ta tạo một bảng danh mục với trường category_id được thiết lập là tự động tăng. Khi thêm một hàng mới vào bảng, MySQL sẽ tự động tạo một giá trị cho trường này.

Chúng ta có thể xem nội dung hiện tại của bảng danh mục bằng cách chạy lệnh SQL sau:

SELECT * FROM `categories`;

Kết quả sẽ hiển thị tất cả các bản ghi trong bảng danh mục.

Tự động tăng và tính duy nhất

Lưu ý rằng chúng ta không cần phải thêm giá trị cho trường category_id khi thêm một danh mục mới vào bảng. MySQL sẽ tự động tạo giá trị này vì trường category_id được thiết lập là tự động tăng.

Nếu bạn muốn sử dụng giá trị tự động tăng của MySQL để tạo một ID mới, bạn có thể sử dụng hàm LAST_INSERT_ID. Cú pháp như sau:

SELECT LAST_INSERT_ID();

Chạy câu lệnh trên sẽ trả về giá trị tiếp theo của trường tự động tăng.

Tóm tắt

  • Tự động tăng là một tính năng quan trọng trong MySQL, giúp tạo ra các giá trị số liên tiếp cho các trường dữ liệu.
  • Tự động tăng thường được sử dụng để tạo khóa chính trong cơ sở dữ liệu.
  • Kiểu dữ liệu của trường tự động tăng phải đủ lớn để chứa các bản ghi dữ liệu. Xác định kiểu dữ liệu INT hoặc BIGINT và hạn chế số lượng bản ghi có thể được thêm vào bảng.
  • Mục đích của việc ràng buộc giá trị không dấu trên khóa chính tự động tăng là để tránh số âm.
  • Khi một hàng bị xóa khỏi bảng, giá trị tự động tăng của nó không được sử dụng lại. MySQL vẫn tiếp tục tạo ra các số tự động tăng mới.
  • Giá trị khởi đầu cho tự động tăng là 1 và giá trị này sẽ tăng lên 1 cho mỗi bản ghi mới.
  • Để bắt đầu tự động tăng với một giá trị khác, bạn có thể sử dụng AUTO_INCREMENT = 10.

Đó là những điều cơ bản về cách sử dụng tự động tăng trong MySQL. Hy vọng bài viết này đã giúp bạn hiểu rõ hơn về tính năng quan trọng này và cách nó hoạt động trong việc quản lý cơ sở dữ liệu của bạn.

1