Default trigger statement
This commit is contained in:
parent
5275ed870b
commit
1a30f25311
|
@ -521,6 +521,9 @@ WHERE OBJECT_NAME(i.object_id) = " . q($table)
|
|||
}
|
||||
|
||||
function trigger($name) {
|
||||
if ($name == "") {
|
||||
return array();
|
||||
}
|
||||
$rows = get_rows("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],
|
||||
|
|
|
@ -697,6 +697,9 @@ if (!defined("DRIVER")) {
|
|||
* @return array array("Trigger" => , "Timing" => , "Event" => , "Statement" => )
|
||||
*/
|
||||
function trigger($name) {
|
||||
if ($name == "") {
|
||||
return array();
|
||||
}
|
||||
$rows = get_rows("SHOW TRIGGERS WHERE `Trigger` = " . q($name));
|
||||
return reset($rows);
|
||||
}
|
||||
|
|
|
@ -440,6 +440,9 @@ ORDER BY conkey, conname") as $row) {
|
|||
}
|
||||
|
||||
function trigger($name) {
|
||||
if ($name == "") {
|
||||
return array("Statement" => "EXECUTE PROCEDURE ()");
|
||||
}
|
||||
$rows = get_rows('SELECT trigger_name AS "Trigger", condition_timing AS "Timing", event_manipulation AS "Event", \'FOR EACH \' || action_orientation AS "Type", action_statement AS "Statement" FROM information_schema.triggers WHERE event_object_table = ' . q($_GET["trigger"]) . ' AND trigger_name = ' . q($name));
|
||||
return reset($rows);
|
||||
}
|
||||
|
|
|
@ -450,6 +450,9 @@ if (isset($_GET["sqlite"]) || isset($_GET["sqlite2"])) {
|
|||
|
||||
function trigger($name) {
|
||||
global $connection;
|
||||
if ($name == "") {
|
||||
return array("Statement" => "BEGIN\n\t;\nEND\n");
|
||||
}
|
||||
preg_match('~^CREATE\\s+TRIGGER\\s*(?:[^`"\\s]+|`[^`]*`|"[^"]*")+\\s*([a-z]+)\\s+([a-z]+)\\s+ON\\s*(?:[^`"\\s]+|`[^`]*`|"[^"]*")+\\s*(?:FOR\\s*EACH\\s*ROW\\s)?(.*)~is', $connection->result("SELECT sql FROM sqlite_master WHERE name = " . q($name)), $match);
|
||||
return array("Timing" => strtoupper($match[1]), "Event" => strtoupper($match[2]), "Trigger" => $name, "Statement" => $match[3]);
|
||||
}
|
||||
|
|
|
@ -20,11 +20,9 @@ if ($_POST && !$error && in_array($_POST["Timing"], $trigger_options["Timing"])
|
|||
|
||||
page_header(($_GET["name"] != "" ? lang('Alter trigger') . ": " . h($_GET["name"]) : lang('Create trigger')), $error, array("table" => $TABLE));
|
||||
|
||||
$row = array("Trigger" => $TABLE . "_bi");
|
||||
if ($_POST) {
|
||||
$row = $_POST;
|
||||
} elseif ($_GET["name"] != "") {
|
||||
$row = trigger($_GET["name"]);
|
||||
$row = $_POST;
|
||||
if (!$row) {
|
||||
$row = trigger($_GET["name"]) + array("Trigger" => $TABLE . "_bi");
|
||||
}
|
||||
?>
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
Adminer 3.3.3-dev:
|
||||
Fix trigger export (SQLite)
|
||||
Default trigger statement (SQLite, PostgreSQL)
|
||||
|
||||
Adminer 3.3.2 (released 2011-08-08):
|
||||
Display error with non-existent row in edit
|
||||
|
|
Loading…
Reference in a new issue