]> git.joonet.de Git - adminer.git/commitdiff
Drop old triggers, routines and events
authorjakubvrana <jakubvrana@7c3ca157-0c34-0410-bff1-cbf682f78f5c>
Tue, 16 Jun 2009 05:49:10 +0000 (05:49 +0000)
committerjakubvrana <jakubvrana@7c3ca157-0c34-0410-bff1-cbf682f78f5c>
Tue, 16 Jun 2009 05:49:10 +0000 (05:49 +0000)
git-svn-id: https://adminer.svn.sourceforge.net/svnroot/adminer/trunk@707 7c3ca157-0c34-0410-bff1-cbf682f78f5c

adminer/dump.inc.php

index 1a4c51274f9f150925ebeb9574c42deec476f759..c94af6654c55c559e6429ac2fa6d334a72849cfe 100644 (file)
@@ -16,7 +16,8 @@ function dump_triggers($table, $style) {
                if ($result->num_rows) {
                        echo "\nDELIMITER ;;\n";
                        while ($row = $result->fetch_assoc()) {
-                               echo "\nCREATE TRIGGER " . idf_escape($row["Trigger"]) . " $row[Timing] $row[Event] ON " . idf_escape($row["Table"]) . " FOR EACH ROW\n$row[Statement];;\n";
+                               echo "\n" . ($style == 'CREATE+ALTER' ? "DROP TRIGGER IF EXISTS " . idf_escape($row["Trigger"]) . ";;\n" : "")
+                               . "CREATE TRIGGER " . idf_escape($row["Trigger"]) . " $row[Timing] $row[Event] ON " . idf_escape($row["Table"]) . " FOR EACH ROW\n$row[Statement];;\n";
                        }
                        echo "\nDELIMITER ;\n";
                }
@@ -51,7 +52,8 @@ if ($_POST) {
                                        foreach (array("FUNCTION", "PROCEDURE") as $routine) {
                                                $result = $dbh->query("SHOW $routine STATUS WHERE Db = '" . $dbh->escape_string($db) . "'");
                                                while ($row = $result->fetch_assoc()) {
-                                                       $out .= $dbh->result($dbh->query("SHOW CREATE $routine " . idf_escape($row["Name"])), 2) . ";;\n\n";
+                                                       $out .= ($style != 'DROP+CREATE' ? "DROP $routine IF EXISTS " . idf_escape($row["Name"]) . ";;\n" : "")
+                                                       . $dbh->result($dbh->query("SHOW CREATE $routine " . idf_escape($row["Name"])), 2) . ";;\n\n";
                                                }
                                                $result->free();
                                        }
@@ -59,7 +61,8 @@ if ($_POST) {
                                if ($dbh->server_info >= 5.1) {
                                        $result = $dbh->query("SHOW EVENTS");
                                        while ($row = $result->fetch_assoc()) {
-                                               $out .= $dbh->result($dbh->query("SHOW CREATE EVENT " . idf_escape($row["Name"])), 3) . ";;\n\n";
+                                               $out .= ($style != 'DROP+CREATE' ? "DROP EVENT IF EXISTS " . idf_escape($row["Name"]) . ";;\n" : "")
+                                               . $dbh->result($dbh->query("SHOW CREATE EVENT " . idf_escape($row["Name"])), 3) . ";;\n\n";
                                        }
                                        $result->free();
                                }