Ejemplo n.º 1
0
         if (!$field["has_default"]) {
             $field["default"] = null;
         }
         if ($key == $row["auto_increment_col"]) {
             $field["auto_increment"] = true;
         }
         $process_field = process_field($field, $type_field);
         $all_fields[] = array($field["orig"], $process_field, $after);
         if ($process_field != process_field($orig_field, $orig_field)) {
             $fields[] = array($field["orig"], $process_field, $after);
             if ($field["orig"] != "" || $after) {
                 $use_all_fields = true;
             }
         }
         if ($foreign_key !== null) {
             $foreign[idf_escape($field["field"])] = ($TABLE != "" && $jush != "sqlite" ? "ADD" : " ") . format_foreign_key(array('table' => $foreign_keys[$field["type"]], 'source' => array($field["field"]), 'target' => array($type_field["field"]), 'on_delete' => $field["on_delete"]));
         }
         $after = " AFTER " . idf_escape($field["field"]);
     } elseif ($field["orig"] != "") {
         $use_all_fields = true;
         $fields[] = array($field["orig"]);
     }
     if ($field["orig"] != "") {
         $orig_field = next($orig_fields);
         if (!$orig_field) {
             $after = "";
         }
     }
 }
 $partitioning = "";
 if ($partition_by[$row["partition_by"]]) {
Ejemplo n.º 2
0
    ksort($row["source"]);
    // enforce input order
    $target = array();
    foreach ($row["source"] as $key => $val) {
        $target[$key] = $row["target"][$key];
    }
    $row["target"] = $target;
    if ($jush == "sqlite") {
        queries_adminer_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_adminer_redirect($alter . $drop, $location, $message);
        } else {
            query_adminer_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.') . "<br>{$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);