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

ทำ UPDATE ใน MySQL แต่ไม่เปลี่ยนแปลงข้อมูล (No Change)

การใช้ UPDATE ที่ไม่เปลี่ยนแปลงค่า (Id = Id)

ใน MySQL เราสามารถรันคำสั่ง UPDATE ที่ตั้งค่าคอลัมน์เท่ากับตัวมันเอง (เช่น SET Id = Id) ซึ่งจะไม่ทำให้ข้อมูลเปลี่ยนแปลง แต่ยังคงเป็นคำสั่ง UPDATE ที่ถูกต้องและรันสำเร็จ

สร้างตารางและเพิ่มข้อมูล

mysql> CREATE TABLE DemoTable (Id INT);
Query OK, 0 rows affected (1.02 sec)

mysql> INSERT INTO DemoTable VALUES(201);
mysql> INSERT INTO DemoTable VALUES(202);
mysql> INSERT INTO DemoTable VALUES(290);
mysql> INSERT INTO DemoTable VALUES(301);

แสดงข้อมูลทั้งหมด

mysql> SELECT * FROM DemoTable;

ผลลัพธ์:

+------+
| Id   |
+------+
| 201  |
| 202  |
| 290  |
| 301  |
+------+
4 rows in set (0.00 sec)

คำสั่ง UPDATE ที่ไม่เปลี่ยนค่า

mysql> UPDATE DemoTable SET Id = Id WHERE Id = 290;
Query OK, 0 rows affected (0.08 sec)
Rows matched: 1 Changed: 0 Warnings: 0

ตรวจสอบข้อมูลอีกครั้ง

mysql> SELECT * FROM DemoTable;

ผลลัพธ์ (เหมือนเดิม):

+------+
| Id   |
+------+
| 201  |
| 202  |
| 290  |
| 301  |
+------+
4 rows in set (0.00 sec)

คำอธิบาย

  • SET Id = Id : กำหนดค่าใหม่เท่ากับค่าเดิม → ไม่มีการเปลี่ยนแปลง
  • WHERE Id = 290 : จำกัดขอบเขตเฉพาะแถวที่ Id=290
  • MySQL รายงาน Rows matched: 1 Changed: 0 แสดงว่าพบแถว 1 แถว แต่ไม่มีการเปลี่ยนแปลงข้อมูล
  • กรณีใช้งาน: ทริกเกอร์ Trigger ที่ต้องการให้ทำงานเมื่อมี UPDATE แม้ค่าจะไม่เปลี่ยน, หรือการทดสอบ