Nếu bạn đang tìm cách cập nhật tất cả 70 cột thành một giá trị duy nhất bằng một câu lệnh ngắn, đơn giản, thì tôi khuyên bạn nên viết một thủ tục được lưu trữ để thực hiện cập nhật. Bằng cách đó, bạn chỉ cần viết ra cú pháp cập nhật đầy đủ một lần và có thể sử dụng lại nó nhiều lần bằng cách gọi quy trình đã lưu trữ.
CREATE PROCEDURE update_all_columns (p_new_value SMALLINT, p_id INT) ...
CALL update_all_columns(1,2);
Một thủ thuật khác là sử dụng bảng information_schema.columns để tạo câu lệnh cập nhật, làm cho việc viết mã quy trình được lưu trữ bớt tẻ nhạt hơn.
Một cái gì đó như thế này:
SELECT concat('UPDATE ',
table_name,
' SET ',
group_concat(column_name separator ' = p_new_value, '),
' = p_new_value',
' WHERE id = p_id;') as sql_stmt
FROM information_schema.columns
WHERE table_schema = 'your_schema'
AND table_name = 'tablename'
AND column_name != 'id'