]> git.joonet.de Git - adminer.git/commitdiff
Rename tables by single command
authorJakub Vrana <jakub@vrana.cz>
Fri, 18 Jun 2010 14:38:06 +0000 (16:38 +0200)
committerJakub Vrana <jakub@vrana.cz>
Fri, 18 Jun 2010 14:38:06 +0000 (16:38 +0200)
adminer/drivers/mysql.inc.php

index 4e8b6c38e4fa2f12d19c7e53e4b98d705e0b7744..307a9aba30563535efc06e0318e02579b224952b 100644 (file)
@@ -544,22 +544,18 @@ if (!defined("DRIVER")) {
        */
        function rename_database($name, $collation) {
                global $connection;
-               $return = false;
                if (create_database($name, $collation)) {
                        //! move triggers
-                       $return = true; // table list may by empty
-                       foreach (tables_list() as $table) {
-                               if (!queries("RENAME TABLE " . table($table) . " TO " . idf_escape($name) . "." . table($table))) {
-                                       $return = false;
-                                       break;
-                               }
+                       $rename = array();
+                       foreach (tables_list() as $table => $type) {
+                               $rename[] = table($table) . " TO " . idf_escape($name) . "." . table($table);
                        }
-                       if ($return) {
+                       if (!$rename || queries("RENAME TABLE " . implode(", ", $rename))) {
                                queries("DROP DATABASE " . idf_escape(DB));
-                               //! saved to history of removed database
+                               return true;
                        }
                }
-               return $return;
+               return false;
        }
        
        /** Generate modifier for auto increment column