giải pháp zerkms không hoạt động với tôi. Tôi phải chỉ định information_schema
cơ sở dữ liệu để có thể truy vấn Tables
bảng.
SELECT
CONCAT('RENAME TABLE ', GROUP_CONCAT('`', TABLE_SCHEMA, '`.`', TABLE_NAME, '` TO `', TABLE_SCHEMA, '`.`prefix_', TABLE_NAME, '`')) AS q
FROM
`information_schema`.`Tables` WHERE TABLE_SCHEMA='test';
Chỉnh sửa:
Đã tối ưu hóa truy vấn để chỉ gọi RENAME TABLE một lần. Một điều gì đó mà tôi gặp phải là thực tế là đầu ra nối đã bị cắt ngắn ở 341 ký tự. Điều này có thể được giải quyết (nếu máy chủ của bạn cho phép) bằng cách đặt biến MySQL group_concat_max_len
lên giá trị cao hơn:
SET group_concat_max_len = 3072; -- UTF8 assumes each character will take 3 bytes, so 3072/3 = 1024 characters.