ใช่ คอลัมน์ AUTO_INCREMENT ใน MySQL จะเป็น SIGNED (รองรับทั้งค่าบวกและลบ) โดยค่าเริ่มต้น
ตัวอย่างยืนยัน
1. สร้างตาราง AUTO_INCREMENT
mysql> create table DemoTable
-> (
-> MyNumber int AUTO_INCREMENT PRIMARY KEY
-> );
Query OK, 0 rows affected (0.45 sec)
2. แทรกข้อมูล รวมค่าลบ
mysql> insert into DemoTable values(); -- Auto: 1 mysql> insert into DemoTable values(-100); -- ระบุค่าลบ mysql> insert into DemoTable values(-300); -- ระบุค่าลบ mysql> insert into DemoTable values(0); -- 0 ถือเป็นค่าว่าง จะได้ค่า Auto ถัดไป
ผลลัพธ์
+----------+ | MyNumber | +----------+ | -300 | | -100 | | 1 | | 2 | +----------+
ข้อสังเกตสำคัญ
- ค่าลบที่ระบุเองจะไม่ส่งผลต่อลำดับ Auto Increment ปกติ
- ค่า
0หรือNULLจะทริกเกอร์ให้สร้างค่า Auto ถัดไป - ค่าสูงสุดของ SIGNED INT คือ
2147483647หากต้องการมากกว่า ใช้BIGINT - หากต้องการเฉพาะค่าบวก ให้เพิ่ม
UNSIGNED:INT UNSIGNED AUTO_INCREMENT