Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

SERIAL trong MySQL: Đã bao gồm NOT NULL, AUTO_INCREMENT, UNIQUE

Kiểu dữ liệu SERIAL trong MySQL: Alias của BIGINT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE

SERIAL không phải kiểu dữ liệu riêng biệt - nó là tên gọi tắt (alias) cho tổ hợp: BIGINT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE. Do đó không nên thêm NOT NULL sau SERIAL.

1. Tạo bảng với cột SERIAL

mysql> CREATE TABLE DemoTable (
    Id SERIAL
);

2. Chèn dữ liệu không chỉ định giá trị Id

mysql> INSERT INTO DemoTable VALUES ();
mysql> INSERT INTO DemoTable VALUES ();
mysql> INSERT INTO DemoTable VALUES ();
mysql> INSERT INTO DemoTable VALUES ();
mysql> INSERT INTO DemoTable VALUES ();
mysql> INSERT INTO DemoTable VALUES ();

3. Xem kết quả

mysql> SELECT * FROM DemoTable;
+----+
| Id |
+----+
| 1  |
| 2  |
| 3  |
| 4  |
| 5  |
| 6  |
+----+

Phân tích thành phần SERIAL:

Thành phầnÝ nghĩa
BIGINTSố nguyên 8 byte (-9 quintillion đến +9 quintillion), đủ lớn cho ID
UNSIGNEDChỉ số dương (0 đến 18 quintillion), gấp đôi phạm vi dương
NOT NULLKhông cho phép giá trị NULL (đã có sẵn)
AUTO_INCREMENTTự động gán 1,2,3... khi INSERT không chỉ định giá trị
UNIQUEĐảm bảo không trùng lặp (Primary Key ngầm định)

So sánh:

-- Tương đương hoàn toàn:
CREATE TABLE t1 (id SERIAL);
CREATE TABLE t2 (id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE);

Lưu ý: SERIAL thường dùng cho Primary Key. Nếu cần tên cột khác: Id SERIAL PRIMARY KEY (UNIQUE thừa nhưng rõ ràng hơn).