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

เลื่อนค่า ID ของแถวที่มีอยู่ใน MySQL (Shift ID Values)

ใช้ UPDATE บวกค่าคงที่เข้ากับ Primary Key (ต้องปิด FK Checks ก่อนหากมี Foreign Key)

mysql> CREATE TABLE DemoTable (
    -> StudentId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> StudentName VARCHAR(20)
    -> );
Query OK, 0 rows affected (1.07 sec)
mysql> INSERT INTO DemoTable(StudentName) VALUES('Chris');
Query OK, 1 row affected (0.23 sec)
mysql> INSERT INTO DemoTable(StudentName) VALUES('Robert');
Query OK, 1 row affected (0.12 sec)
mysql> INSERT INTO DemoTable(StudentName) VALUES('David');
Query OK, 1 row affected (0.18 sec)
mysql> INSERT INTO DemoTable(StudentName) VALUES('Mike');
Query OK, 1 row affected (0.10 sec)
mysql> SELECT * FROM DemoTable;
+-----------+-------------+
| StudentId | StudentName |
+-----------+-------------+
|         1 | Chris       |
|         2 | Robert      |
|         3 | David       |
|         4 | Mike        |
+-----------+-------------+
4 rows in set (0.00 sec)

เลื่อน ID เพิ่ม 1000:

mysql> UPDATE DemoTable SET StudentId = StudentId + 1000;
Query OK, 4 rows affected (0.18 sec)
mysql> SELECT * FROM DemoTable;
+-----------+-------------+
| StudentId | StudentName |
+-----------+-------------+
|      1001 | Chris       |
|      1002 | Robert      |
|      1003 | David       |
|      1004 | Mike        |
+-----------+-------------+
4 rows in set (0.00 sec)

⚠️ คำเตือน: การ UPDATE Primary Key อาจทำลาย Foreign Key References ต้องปิด FOREIGN_KEY_CHECKS=0 ก่อน และเปิดกลับหลังเสร็จ