Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

MySQL: SERIAL คือ BIGINT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE (มี NOT NULL ในตัวแล้ว)


คำอธิบาย

ใน MySQL SERIAL เป็น Alias (ชื่อเรียกทางเลือก) ของ BIGINT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE ดังนั้น ห้าม เขียน NOT NULL ต่อท้าย SERIAL เพราะมีอยู่ในตัวแล้ว

ขั้นตอนการสร้างตาราง

mysql> create table DemoTable ( 
    Id serial ); 
Query OK, 0 rows affected (0.42 sec)

การเพิ่มข้อมูล (ไม่ระบุค่า Id)

mysql> insert into DemoTable values(); 
Query OK, 1 row affected (0.24 sec)
mysql> insert into DemoTable values(); 
Query OK, 1 row affected (0.09 sec)
mysql> insert into DemoTable values(); 
Query OK, 1 row affected (0.06 sec)
mysql> insert into DemoTable values(); 
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable values(); 
Query OK, 1 row affected (0.09 sec)
mysql> insert into DemoTable values(); 
Query OK, 1 row affected (0.07 sec)

แสดงข้อมูล

mysql> select * from DemoTable;

ผลลัพธ์ (Auto Increment ทำงานอัตโนมัติ):

+----+
| Id |
+----+
| 1  |
| 2  |
| 3  |
| 4  |
| 5  |
| 6  |
+----+
6 rows in set (0.00 sec)

สรุปคุณสมบัติของ SERIAL

ข้อควรระวัง

  • อย่าเขียน Id SERIAL NOT NULL (Redundant/ซ้ำซ้อน)
  • SERIAL เหมาะสำหรับ Primary Key ที่ต้องการช่วงค่ากว้างมาก
  • หากไม่ต้องการ UNIQUE ให้ใช้ BIGINT UNSIGNED AUTO_INCREMENT แทน
คุณสมบัติคำอธิบาย
BIGINTจำนวนเต็มขนาดใหญ่ (8 ไบต์, -9 แกลลอง ถึง 9 แกลลอง)
UNSIGNEDเฉพาะค่าบวกและศูนย์ (0 ถึง 18 แกลลอง)
NOT NULLห้ามเป็น NULL (มีอยู่ในตัวแล้ว)
AUTO_INCREMENTเพิ่มค่าอัตโนมัติ 1, 2, 3... เมื่อ INSERT ไม่ระบุค่า
UNIQUEค่าไม่ซ้ำกัน (Primary Key แบบ Implicit)