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

Cập nhật toàn bộ cột thành một giá trị cố định trong MySQL

Cú pháp đơn giản

UPDATE bang SET cot = gia_tri_moi;

Không có WHERE → áp dụng cho tất cả dòng.

Ví dụ: Set Amount = 10500 cho tất cả

Dữ liệu ban đầu

+----+-------+--------+
| Id | Name  | Amount |
+----+-------+--------+
| 1  | John  | 2345   |
| 2  | Carol | 47586  |
| 3  | Bob   | 95686  |
| 4  | David | 95667  |
+----+-------+--------+

Truy vấn

mysql> UPDATE setAllValuesDemo SET Amount = 10500;

Kết quả

+----+-------+--------+
| Id | Name  | Amount |
+----+-------+--------+
| 1  | John  | 10500  |
| 2  | Carol | 10500  |
| 3  | Bob   | 10500  |
| 4  | David | 10500  |
+----+-------+--------+

⚠️ Cảnh báo an toàn

  • UPDATE không WHERE ảnh hưởng toàn bộ bảng
  • Luôn chạy SELECT trước để xác nhận: SELECT * FROM bang WHERE cot != gia_tri_moi LIMIT 10;
  • Dùng transaction: START TRANSACTION; UPDATE ...; -- kiểm tra -- COMMIT/ROLLBACK;
  • Production: Cân nhắc pt-online-schema-change hoặc batch update nhỏ

Các biến thể

  • Set NULL: UPDATE bang SET cot = NULL;
  • Set DEFAULT: UPDATE bang SET cot = DEFAULT;
  • Set từ expression: UPDATE bang SET cot = cot * 1.1; (tăng 10%)
  • Set theo điều kiện: UPDATE bang SET cot = CASE WHEN ... END;

Hiệu năng bảng lớn