Tôi đã quản lý để thực thi một mã luôn hoạt động và không tạo ra lỗi khi bảng không tồn tại:
SELECT Count(*)
INTO @exists
FROM information_schema.tables
WHERE table_schema = [DATABASE_NAME]
AND table_type = 'BASE TABLE'
AND table_name = 'video_top_day';
SET @query = If(@exists>0,
'RENAME TABLE video_top_day TO video_top_day_for_delete',
'SELECT \'nothing to rename\' status');
PREPARE stmt FROM @query;
EXECUTE stmt;
Khi bạn không muốn thay thế [DATABASE NAME]
theo cách thủ công, bạn có thể sử dụng biến sau
SELECT DATABASE() INTO @db_name FROM DUAL;