$val) { $target[$key] = $row["target"][$key]; } $row["target"] = $target; } if ($jush == "sqlite") { queries_redirect($location, $message, recreate_table($TABLE, $TABLE, array(), array(), array(" $name" => ($_POST["drop"] ? "" : " " . format_foreign_key($row))))); } else { $alter = "ALTER TABLE " . table($TABLE); $drop = "\nDROP " . ($jush == "sql" ? "FOREIGN KEY " : "CONSTRAINT ") . idf_escape($name); if ($_POST["drop"]) { query_redirect($alter . $drop, $location, $message); } else { query_redirect($alter . ($name != "" ? "$drop," : "") . "\nADD" . format_foreign_key($row), $location, $message); $error = lang('Source and target columns must have the same data type, there must be an index on the target columns and referenced data must exist.') . "
$error"; //! no partitioning } } } page_header(lang('Foreign key'), $error, array("table" => $TABLE), h($TABLE)); if ($_POST) { ksort($row["source"]); if ($_POST["add"]) { $row["source"][] = ""; } elseif ($_POST["change"] || $_POST["change-js"]) { $row["target"] = array(); } } elseif ($name != "") { $foreign_keys = foreign_keys($TABLE); $row = $foreign_keys[$name]; $row["source"][] = ""; } else { $row["table"] = $TABLE; $row["source"] = array(""); } ?>
select_db($row["db"]); } if ($row["ns"] != "") { set_schema($row["ns"]); } $referencable = array_keys(array_filter(table_status('', true), 'fk_support')); $target = array_keys(fields(in_array($row["table"], $referencable) ? $row["table"] : reset($referencable))); $onchange = "this.form['change-js'].value = '1'; this.form.submit();"; echo "

" . lang('Target table') . ": " . html_select("table", $referencable, $row["table"], $onchange) . "\n"; if ($jush == "pgsql") { echo lang('Schema') . ": " . html_select("ns", $adminer->schemas(), $row["ns"] != "" ? $row["ns"] : $_GET["ns"], $onchange); } elseif ($jush != "sqlite") { $dbs = array(); foreach ($adminer->databases() as $db) { if (!information_schema($db)) { $dbs[] = $db; } } echo lang('DB') . ": " . html_select("db", $dbs, $row["db"] != "" ? $row["db"] : $_GET["db"], $onchange); } ?>

$val) { echo ""; echo "
" . html_select("source[" . (+$key) . "]", array(-1 => "") + $source, $val, ($j == count($row["source"]) - 1 ? "foreignAddRow.call(this);" : 1), "label-source"); echo "" . html_select("target[" . (+$key) . "]", $target, isset($row["target"][$key]) ? $row["target"][$key] : null, 1, "label-target"); $j++; } ?>

: "") + explode("|", $on_actions), $row["on_delete"]); ?> : "") + explode("|", $on_actions), $row["on_update"]); ?> "innodb-foreign-key-constraints.html", 'mariadb' => "foreign-keys/", 'pgsql' => "sql-createtable.html#SQL-CREATETABLE-REFERENCES", 'mssql' => "ms174979.aspx", 'oracle' => "https://docs.oracle.com/cd/B19306_01/server.102/b14200/clauses002.htm#sthref2903", )); ?>