การสร้างรหัสอัตโนมัติแบบมีเลขศูนย์นำหน้า (001, 002, ...)
ใช้ INSERT INTO ... SELECT ร่วมกับ LPAD() และ COALESCE(MAX(id),0)+1 เพื่อสร้างเลขต่อเนื่อง
สร้างตาราง
mysql> CREATE TABLE DemoTable1967 (
-> Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> UserId VARCHAR(20)
-> );
Query OK, 0 rows affected (0.00 sec)
เพิ่มข้อมูล 3 แถว
mysql> INSERT INTO DemoTable1967(UserId)
-> SELECT LPAD(COALESCE(MAX(Id), 0) + 1, 3, '0') FROM DemoTable1967;
Query OK, 1 row affected (0.00 sec)
-- ทำซ้ำอีก 2 ครั้ง
ผลลัพธ์
mysql> SELECT * FROM DemoTable1967;
+----+--------+
| Id | UserId |
+----+--------+
| 1 | 001 |
| 2 | 002 |
| 3 | 003 |
+----+--------+
คำอธิบาย: MAX(Id) หาค่าสูงสุด, COALESCE(...,0) กัน NULL ตอนตารางว่าง, +1 เพิ่มลำดับ, LPAD(..., 3, '0') ทำให้กว้าง 3 หลักเติมศูนย์หน้า