mirror of
https://github.com/vrana/adminer.git
synced 2025-08-12 17:44:07 +02:00
Driver specific trigger options
git-svn-id: https://adminer.svn.sourceforge.net/svnroot/adminer/trunk@1478 7c3ca157-0c34-0410-bff1-cbf682f78f5c
This commit is contained in:
@@ -412,12 +412,14 @@ WHERE OBJECT_NAME(indexes.object_id) = " . $connection2->quote($table)
|
||||
$result = $connection->query("SELECT s.name [Trigger],
|
||||
CASE WHEN OBJECTPROPERTY(s.id, 'ExecIsInsertTrigger') = 1 THEN 'INSERT' WHEN OBJECTPROPERTY(s.id, 'ExecIsUpdateTrigger') = 1 THEN 'UPDATE' WHEN OBJECTPROPERTY(s.id, 'ExecIsDeleteTrigger') = 1 THEN 'DELETE' END [Event],
|
||||
CASE WHEN OBJECTPROPERTY(s.id, 'ExecIsInsteadOfTrigger') = 1 THEN 'INSTEAD OF' ELSE 'AFTER' END [Timing],
|
||||
c.text [Statement]
|
||||
c.text
|
||||
FROM sysobjects s
|
||||
JOIN syscomments c ON s.id = c.id
|
||||
WHERE s.xtype = 'TR' AND s.name = " . $connection->quote($name)
|
||||
);
|
||||
return $result->fetch_assoc();
|
||||
$row = $result->fetch_assoc();
|
||||
$row["Statement"] = preg_replace('~^.+\\s+AS\\s+~isU', '', $row["text"]); //! identifiers, comments
|
||||
return $row;
|
||||
}
|
||||
|
||||
function triggers($table) {
|
||||
@@ -436,6 +438,13 @@ WHERE sys1.xtype = 'TR' AND sys2.name = " . $connection->quote($table)
|
||||
return $return;
|
||||
}
|
||||
|
||||
function trigger_options() {
|
||||
return array(
|
||||
"Timing" => array("AFTER", "INSTEAD OF"),
|
||||
"Type" => array("AS"),
|
||||
);
|
||||
}
|
||||
|
||||
function support($feature) {
|
||||
return ereg('^(view|routine|trigger)$', $feature);
|
||||
}
|
||||
|
@@ -454,7 +454,7 @@ if (!defined("DRIVER")) {
|
||||
*/
|
||||
function view($name) {
|
||||
global $connection;
|
||||
return array("select" => preg_replace('~^(?:[^`]|`[^`]*`)* AS ~U', '', $connection->result("SHOW CREATE VIEW " . idf_escape($name), 1)));
|
||||
return array("select" => preg_replace('~^(?:[^`]|`[^`]*`)*\\s+AS\\s+~isU', '', $connection->result("SHOW CREATE VIEW " . idf_escape($name), 1)));
|
||||
}
|
||||
|
||||
/** Get sorted grouped list of collations
|
||||
@@ -648,6 +648,14 @@ if (!defined("DRIVER")) {
|
||||
return $return;
|
||||
}
|
||||
|
||||
function trigger_options() {
|
||||
return array(
|
||||
"Timing" => array("BEFORE", "AFTER"),
|
||||
// Event is always INSERT, UPDATE, DELETE
|
||||
"Type" => array("FOR EACH ROW"),
|
||||
);
|
||||
}
|
||||
|
||||
/** Explain select
|
||||
* @param Min_DB
|
||||
* @param string
|
||||
|
@@ -397,7 +397,7 @@ WHERE tc.constraint_type = 'FOREIGN KEY' AND tc.table_name = " . $connection->qu
|
||||
|
||||
function trigger($name) {
|
||||
global $connection;
|
||||
$result = $connection->query('SELECT trigger_name AS "Trigger", condition_timing AS "Timing", event_manipulation AS "Event", action_statement AS "Statement" FROM information_schema.triggers WHERE event_object_table = ' . $connection->quote($_GET["trigger"]) . ' AND trigger_name = ' . $connection->quote($name));
|
||||
$result = $connection->query('SELECT trigger_name AS "Trigger", condition_timing AS "Timing", event_manipulation AS "Event", action_statement AS "Statement" FROM information_schema.triggers WHERE event_object_table = ' . $connection->quote($_GET["trigger"]) . ' AND trigger_name = ' . $connection->quote($name)); //! detect Type
|
||||
return $result->fetch_assoc();
|
||||
}
|
||||
|
||||
@@ -411,6 +411,13 @@ WHERE tc.constraint_type = 'FOREIGN KEY' AND tc.table_name = " . $connection->qu
|
||||
return $return;
|
||||
}
|
||||
|
||||
function trigger_options() {
|
||||
return array(
|
||||
"Timing" => array("BEFORE", "AFTER"),
|
||||
"Type" => array("FOR EACH STATEMENT", "FOR EACH ROW"),
|
||||
);
|
||||
}
|
||||
|
||||
function explain($connection, $query) {
|
||||
return $connection->query("EXPLAIN $query");
|
||||
}
|
||||
|
@@ -453,6 +453,13 @@ if (isset($_GET["sqlite"]) || isset($_GET["sqlite2"])) {
|
||||
return $return;
|
||||
}
|
||||
|
||||
function trigger_options() {
|
||||
return array(
|
||||
"Timing" => array("BEFORE", "AFTER", "INSTEAD OF"),
|
||||
"Type" => array("FOR EACH ROW"),
|
||||
);
|
||||
}
|
||||
|
||||
function explain($connection, $query) {
|
||||
return $connection->query("EXPLAIN $query");
|
||||
}
|
||||
|
Reference in New Issue
Block a user