Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Có thể UPDATE MySQL mà không thay đổi dữ liệu bảng?

Có. MySQL cho phép thực hiện câu lệnh UPDATE mà không làm thay đổi dữ liệu thực tế, bằng cách gán cột bằng chính nó (SET col = col) hoặc điều kiện WHERE không khớp.

Ví dụ minh họa

Tạo bảng:

mysql> create table DemoTable( 
    Id int 
);

Chèn dữ liệu:

mysql> insert into DemoTable values(201);
mysql> insert into DemoTable values(202);
mysql> insert into DemoTable values(290);
mysql> insert into DemoTable values(301);

Hiển thị dữ liệu:

mysql> select * from DemoTable;

Kết quả:

+------+
| Id   |
+------+
| 201  |
| 202  |
| 290  |
| 301  |
+------+

UPDATE không thay đổi dữ liệu

mysql> update DemoTable set Id=Id where Id=290;

Kết quả thực thi:

Query OK, 0 rows affected (0.08 sec)
Rows matched: 1 Changed: 0 Warnings: 0

Kiểm tra lại dữ liệu:

mysql> select * from DemoTable;

Kết quả không đổi:

+------+
| Id   |
+------+
| 201  |
| 202  |
| 290  |
| 301  |
+------+

Giải thích:

  • SET Id = Id: Gán giá trị cũ vào chính nó → không thay đổi
  • WHERE Id=290: Chỉ tác động 1 hàng
  • Rows matched: 1: Tìm thấy 1 hàng khớp điều kiện
  • Changed: 0: Không hàng nào thực sự bị sửa đổi giá trị

Ứng dụng: Kích hoạt trigger ON UPDATE, cập nhật timestamp ON UPDATE CURRENT_TIMESTAMP, test hiệu suất, hoặc đơn giản là "chạm" vào hàng để refresh cache/replication mà không sửa dữ liệu.