]> git.joonet.de Git - adminer.git/commitdiff
Move triggers to table
authorjakubvrana <jakubvrana@7c3ca157-0c34-0410-bff1-cbf682f78f5c>
Sat, 28 Jul 2007 20:33:18 +0000 (20:33 +0000)
committerjakubvrana <jakubvrana@7c3ca157-0c34-0410-bff1-cbf682f78f5c>
Sat, 28 Jul 2007 20:33:18 +0000 (20:33 +0000)
git-svn-id: https://adminer.svn.sourceforge.net/svnroot/adminer/trunk@283 7c3ca157-0c34-0410-bff1-cbf682f78f5c

dump.inc.php

index f1f52fe3349671a162c35eb2b762f277f39ed533..e45baa0ac8a637f65e62a230361bfd000078936e 100644 (file)
@@ -7,7 +7,7 @@ function dump_table($table, $data = true) {
        global $mysql;
        $result = $mysql->query("SHOW CREATE TABLE " . idf_escape($table));
        if ($result) {
-               echo $mysql->result($result, 1) . ";\n";
+               echo $mysql->result($result, 1) . ";\n\n";
                $result->free();
                if ($data) {
                        $result = $mysql->query("SELECT * FROM " . idf_escape($table)); //! enum and set as numbers, binary as _binary
@@ -20,6 +20,17 @@ function dump_table($table, $data = true) {
                }
                echo "\n";
        }
+       if ($mysql->server_info >= 5) {
+               $result = $mysql->query("SHOW TRIGGERS LIKE '" . $mysql->escape_string(addcslashes($table, "%_")) . "'");
+               if ($result->num_rows) {
+                       echo "DELIMITER ;;\n\n";
+                       while ($row = $result->fetch_assoc()) {
+                               echo "CREATE TRIGGER " . idf_escape($row["Trigger"]) . " $row[Timing] $row[Event] ON " . idf_escape($row["Table"]) . " FOR EACH ROW $row[Statement];;\n\n";
+                       }
+                       echo "DELIMITER ;\n\n";
+               }
+               $result->free();
+       }
 }
 
 function dump($db) {
@@ -47,19 +58,8 @@ function dump($db) {
        }
        $result->free();
        
-       if ($mysql->server_info >= 5) {
-               $result = $mysql->query("SHOW TRIGGERS");
-               if ($result->num_rows || $routines[$db]) {
-                       echo "DELIMITER ;;\n\n";
-               }
-               while ($row = $result->fetch_assoc()) {
-                       echo "CREATE TRIGGER " . idf_escape($row["Trigger"]) . " $row[Timing] $row[Event] ON " . idf_escape($row["Table"]) . " FOR EACH ROW $row[Statement];;\n\n";
-               }
-               echo implode("", (array) $routines[$db]);
-               if ($result->num_rows || $routines[$db]) {
-                       echo "DELIMITER ;\n\n";
-               }
-               $result->free();
+       if ($routines[$db]) {
+               echo "DELIMITER ;;\n\n" . implode("", $routines[$db]) . "DELIMITER ;\n\n";
        }
        
        echo "\n\n";