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-changehoặ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