Sequence trong MySQL là gì?
Trong MySQL, sequence là danh sách số nguyên tạo theo thứ tự tăng dần bắt đầu từ 1 hoặc 0 nếu chỉ định. Nhiều ứng dụng cần sequence để tạo số duy nhất đặc biệt cho định danh.
Ví dụ
Ví dụ: customer ID trong CRM, số nhân viên trong HR, số thiết bị trong hệ thống quản lý dịch vụ.
Để tạo sequence trong MySQL tự động, đặt thuộc tính AUTO_INCREMENT cho một cột. Thường là cột primary key.
Quy tắc
Các quy tắc dùng thuộc tính AUTO_INCREMENT:
- Mỗi table chỉ một cột
AUTO_INCREMENT, kiểu dữ liệu thường integer. - Cột
AUTO_INCREMENTcần indexed (PRIMARY KEY hoặc UNIQUE index). - Cột
AUTO_INCREMENTphải có ràng buộcNOT NULL. - Khi đặt
AUTO_INCREMENT, MySQL tự thêmNOT NULLcho cột.
Tạo MySQL Sequence
Ví dụ tạo MySQL sequence:
CREATE TABLE tableName (
emp_no INT AUTO_INCREMENT PRIMARY KEY,
first_name VARCHAR(50),
last_name VARCHAR(50)
)
Hiểu cách cột AUTO_INCREMENT hoạt động:
- Giá trị khởi đầu cột
AUTO_INCREMENTthường là 1. Tăng 1 khi chènNULLvào cột hoặc khi bỏ qua giá trị trong câu lệnhINSERT. - Để lấy số sequence cuối cùng tạo, dùng hàm
LAST_INSERT_ID(). - Sequence cuối tạo là duy nhất trên các session.
- Nếu kết nối khác tạo số sequence, có thể lấy bằng
LAST_INSERT_ID(). - Nếu chèn hàng mới vào table và chỉ định giá trị cho cột sequence, MySQL chèn số sequence nếu số đó chưa tồn tại trong cột.