SQL RENAME TABLE command
Solution 1
Assuming from your comment that you use MySQL, you should be able to "select" the necessary statements from information_schema.tables
which contains a list of your tables.
Replace your_schema
by your schema-name and check the selected rows before executing them.
Select Concat( 'RENAME TABLE ', table_name, ' TO ', 'new_', table_name, ';' )
From information_schema.tables
Where table_schema = 'your_schema';
returns
RENAME TABLE c_data TO new_c_data;
RENAME TABLE c_main TO new_c_main;
...
Solution 2
You could always generate a simple PHP script that loops through the databases and renames them based on a REGEX expression.
Solution 3
You don't mention what database you're using, and this is completely database dependent (some DBMSes don't even allow you to rename tables). However, I don't know of any DBMS system off the top of my head that allows wildcards in a RENAME command so yes, you will probably have to send each command separately.
Nano HE
A newbie, China based; And I am new to programming. Work mostly with C#, C++, Perl & Php; Using OS: winxp; C#/C++: Visual Studio 2005/2008; Perl: Active Perl 5.10.1 + Komodo Edit 6; Php: NetBeans IDE 6.7 + XAMPP 1.7.3 Thanks for reading and for the replies! ;) I'm Reading Magic Tree House
Updated on June 18, 2022Comments
-
Nano HE almost 2 years
I can run
RENAME TABLE student TO student_new ;
The command is same and easy to follow.Is there a methods to rename a lot of tables in simple command. Assume all the tables belong to the same DB name.
I don't need write a lot of code as below?
RENAME TABLE pre_access TO pre_new_access; RENAME TABLE pre_activities TO pre_new_activities; RENAME TABLE pre_activityapplies TO pre_new_activityapplies; RENAME TABLE pre_adminactions TO pre_new_adminactions; RENAME TABLE pre_admincustom TO pre_new_admincustom; RENAME TABLE pre_admingroups TO pre_new_admingroups; RENAME TABLE pre_adminnotes TO pre_new_adminnotes; ...
(there are still so many tables need to be renamed)
Update: MySQL Used.