Я знаю, что вы используете MySQL, хотя у меня что-то подобное написано для SQL Server (с использованием T-SQL.) Это похоже на использование бульдозера для открытия двери, но это работает.Возможно, вы могли бы использовать его в качестве основы для запроса MySQL ... определенно не для немедленного использования ответа, а для чего-то, что вы могли бы основывать на логике хранимой процедуры, если хотите.
DECLARE @FrontWord nvarchar(20)
DECLARE @NewFrontWord nvarchar(20)
SET @FrontWord = 'wp_'
SET @NewFrontWord = 'wp_13_'
DECLARE MY_CURSOR Cursor
FOR (
SELECT TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE = 'BASE TABLE'
AND TABLE_NAME LIKE @FrontWord + '%'
)
Open MY_CURSOR
DECLARE @tablename nvarchar(20)
DECLARE @lastpart nvarchar(20)
DECLARE @newtablename nvarchar(20)
Fetch NEXT FROM MY_Cursor INTO @tablename
While (@@FETCH_STATUS <> -1)
BEGIN
IF (@@FETCH_STATUS <> -2)
SET @lastpart = RIGHT(@tablename, LEN(@tablename) - LEN(@FrontWord))
SET @newtablename = @NewFrontWord + @lastpart;
PRINT @newtablename
EXEC sp_rename @tablename, @newtablename
FETCH NEXT FROM MY_CURSOR INTO @tablename
END
CLOSE MY_CURSOR
DEALLOCATE MY_CURSOR
GO