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

G-LEARNING
G-LEARNING
Mar 20 2020

Khóa học Excel online - Tuyệt đỉnh Excel - Trở thành bậc thầy Excel trong 16 giờ

Tự động tăng là gì?

Tự động tăng là một chức năng hoạt động trên các loại dữ liệu số. Nó tự động tạo các giá trị số liên tiếp mỗi khi dữ liệu được chèn vào bảng cho trường được xác định là tăng tự động.

Khi sử dụng tự động tăng?

Trong chuẩn hóa cơ sở dữ liệu, chúng ta đã xem xét cách dữ liệu có thể được lưu trữ với mức tối thiểu, bằng cách lưu trữ dữ liệu vào nhiều bảng nhỏ, liên quan với nhau bằng khóa chính và khóa ngoài.

MySQL AUTO_INCREMENT với các ví dụ

Khóa chính phải là duy nhất vì nó xác định duy nhất trong cơ sở dữ liệu. Nhưng, làm thế nào chúng ta có thể đảm bảo rằng khóa chính luôn luôn là duy nhất? Một trong những giải pháp khả thi là sử dụng công thức để tạo khóa chính, 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. Điều này có thể hoạt động tốt nhưng cách làm rất phức tạp . Để tránh sự phức tạp như vậy và để đảm bảo rằng khóa chính luôn duy nhất, chúng ta có thể sử dụng tính năng tăng tự động của MySQL để tạo các khóa chính. Tự động tăng được sử dụng với kiểu dữ liệu INT. Kiểu dữ liệu INT hỗ trợ cả giá trị có dấu và không dấu. Các kiểu dữ liệu không dấu chỉ có thể chứa các số dương. Tốt nhất, nên xác định dữ liệu không dấu trên khóa chính tăng tự động.

Cú pháp tăng tự động

Bây giờ, chúng ta hãy xem ví dụ sau.

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

Lưu ý “AUTO_INCREMENT” trên trường category_id. Điều này khiến id danh mục được tạo tự động mỗi khi một hàng mới được chèn vào bảng dữ liệu. 

Theo mặc định, giá trị bắt đầu cho AUTO_INCREMENT là 1 và giá trị này sẽ tăng thêm 1 cho mỗi lần thêm mới

Hãy xem nội dung hiện tại của bảng danh mục.

 SELECT * FROM `categories`; 

Việc thực thi đoạn script trên MySQL đối với myflixdb cho chúng ta các kết quả sau.

category_id category_name remarks
1 Comedy Movies with humour
2 Romantic Love stories
3 Epic Story acient movies
4 HorrorNull
5 Science Fiction Null
6 Thriller Null
7 Action Null
8 Romantic Comedy Null

Bây giờ chúng ta hãy chèn một danh mục mới vào bảng danh mục.

 INSERT INTO  `categories` (`category_name`) VALUES ('Cartoons'); 

Việc thực thi đoạn script trên đối với myflixdb trong MySQL cho chúng ta các kết quả sau được hiển thị bên dưới.

category_id category_name remarks
1 Comedy Movies with humour
2 Romantic Love stories
3 Epic Story acient movies
4 Horror Null
5 Science Fiction Null
6 Thriller Null
7 Action Null
8 Romantic Comedy Null
9 Cartoons Null

Lưu ý chúng ta không cần thêm id danh mục. MySQL tự động tạo nó cho chúng ta vì id danh mục được xác định là tăng tự động.

Nếu bạn muốn dùng MySQL để tạo id được chèn ở cuối cùng, bạn có thể sử dụng hàm LAST_INSERT_ID để làm điều đó. Cú pháp như hình bên dưới

 SELECT LAST_INSERT_ID(); 

Chạy tập lệnh trên sẽ cho số tăng tự động đến cuối cùng . Kết quả sẽ được như sau:

MySQL AUTO_INCREMENT với các ví dụ

Tóm lược

  • Tự động tăng là thuộc tính khi được chỉ định trên một cột có kiểu dữ liệu số, tạo số liên tục bất cứ khi nào một hàng mới được thêm vào cơ sở dữ liệu.
  • Tự động tăng thường được sử dụng để tạo khóa chính.
  • Kiểu dữ liệu được xác định trên tự động tăng phải đủ lớn để chứa nhiều bản ghi dữ liệu. Xác định TINYINT làm kiểu dữ liệu cho trường tự động tăng và giới hạn số lượng bản ghi có thể được thêm vào bảng chỉ còn 255 do bất kỳ giá trị nào vượt quá loại dữ liệu TINYINT sẽ không được chấp nhận.
  • Nó làm vậy để ràng buộc giá trị không dấu trên các khóa chính tự động tăng để tránh có số âm.
  • Khi một hàng bị xóa khỏi bảng, id tăng tự động của nó không được sử dụng lại. MySQL tiếp tục tạo ra các số mới liên tục.
  • Theo mặc định, giá trị bắt đầu cho tự động tăng là 1 và giá trị này sẽ tăng thêm 1 cho mỗi bản ghi mới
  • Để trình tự động tăng bắt đầu với một giá trị khác, hãy sử dụng AUTO_INCREMENT = 10

Đánh giá bài viết này

0/5 - (0 bình chọn)

0/5 - (0 bình chọn)

Bài viết liên quan

HƯỚNG DẪN VỀ LỆNH LIMIT VÀ OFFSET TRONG MySQL

HƯỚNG DẪN VỀ LỆNH LIMIT VÀ OFFSET TRONG MySQL

HƯỚNG DẪN CÁC KIỂU CỦA LỆNH JOIN TRONG MySQL: INNER, OUTER, LEFT, RIGHT, CROSS

HƯỚNG DẪN CÁC KIỂU CỦA LỆNH JOIN TRONG MySQL: INNER, OUTER, LEFT, RIGHT, CROSS

Hướng dẫn tìm hiểu về NULL và NOT NULL trong MySQL

Hướng dẫn tìm hiểu về NULL và NOT NULL trong MySQL

Tìm hiểu về mệnh đề GROUP BY và HAVING trong MySQL

Tìm hiểu về mệnh đề GROUP BY và HAVING trong MySQL

Hướng dẫn cách sử dụng UNION trong MySQL

Hướng dẫn cách sử dụng UNION trong MySQL

HƯỚNG DẪN TÌM HIỂU 20 CÔNG CỤ QUẢN LÝ SQL TỐT NHẤT NĂM 2020 (PHẦN 2)

HƯỚNG DẪN TÌM HIỂU 20 CÔNG CỤ QUẢN LÝ SQL TỐT NHẤT NĂM 2020 (PHẦN 2)

@ 2020 - Bản quyền của Công ty cổ phần công nghệ giáo dục Gitiho Việt Nam
Giấy chứng nhận Đăng ký doanh nghiệp số: 0109077145, cấp bởi Sở kế hoạch và đầu tư TP. Hà Nội