In thông báo trạng thái trong script SQL MySQL
Để xuất thông báo tùy chỉnh (giống echo hoặc PRINT) khi chạy script SQL, bạn dùng SELECT với chuỗi hằng hoặc biến.
Cú pháp cơ bản
SELECT 'Thông báo của bạn' AS '';
Ví dụ 1: In chuỗi tĩnh
mysql> SELECT 'This is a SQL Script' AS '';
+----------------------+
| |
+----------------------+
| This is a SQL Script |
+----------------------+
Ví dụ 2: In thông báo động với ROW_COUNT()
Kết hợp CONCAT() và ROW_COUNT() để báo số dòng bị ảnh hưởng sau INSERT/UPDATE/DELETE:
mysql> SELECT CONCAT('Inserted ', ROW_COUNT(), ' rows successfully') AS '';
+-------------------------------+
| |
+-------------------------------+
| Inserted 1 rows successfully |
+-------------------------------+
Lưu ý: ROW_COUNT() trả về số dòng ảnh hưởng bởi câu lệnh trước đó. Trong ví dụ trên giá trị -1 do chạy ngay sau SELECT chứ không phải sau DML.
Ứng dụng thực tế
Trong file script .sql:
-- Bắt đầu script
SELECT 'Bắt đầu cập nhật dữ liệu...' AS '';
UPDATE users SET status = 'active' WHERE last_login > '2023-01-01';
SELECT CONCAT('Đã cập nhật ', ROW_COUNT(), ' tài khoản') AS '';
DELETE FROM logs WHERE created_at < '2022-01-01';
SELECT CONCAT('Đã xóa ', ROW_COUNT(), ' bản ghi log cũ') AS '';
SELECT 'Hoàn tất script.' AS '';
Kết quả sẽ hiển thị các thông báo tiến trình rõ ràng.