MS SQL: Foreign key in create table
This commit is contained in:
parent
e86c15479f
commit
d7079f1778
|
@ -44,7 +44,7 @@ if ($_POST && !$error && !$_POST["add"] && !$_POST["drop_col"] && !$_POST["up"]
|
||||||
$fields[] = array($field["orig"], $process_field, $after);
|
$fields[] = array($field["orig"], $process_field, $after);
|
||||||
}
|
}
|
||||||
if (isset($foreign_key)) {
|
if (isset($foreign_key)) {
|
||||||
$foreign[] = ($TABLE != "" ? "ADD" : " ") . " FOREIGN KEY (" . idf_escape($field["field"]) . ") REFERENCES " . table($foreign_keys[$field["type"]]) . " (" . idf_escape($type_field["field"]) . ")" . (in_array($field["on_delete"], $on_actions) ? " ON DELETE $field[on_delete]" : "");
|
$foreign[idf_escape($field["field"])] = ($TABLE != "" ? "ADD" : " ") . " FOREIGN KEY (" . idf_escape($field["field"]) . ") REFERENCES " . table($foreign_keys[$field["type"]]) . " (" . idf_escape($type_field["field"]) . ")" . (in_array($field["on_delete"], $on_actions) ? " ON DELETE $field[on_delete]" : "");
|
||||||
}
|
}
|
||||||
$after = "AFTER " . idf_escape($field["field"]);
|
$after = "AFTER " . idf_escape($field["field"]);
|
||||||
} elseif ($field["orig"] != "") {
|
} elseif ($field["orig"] != "") {
|
||||||
|
|
|
@ -405,11 +405,11 @@ WHERE OBJECT_NAME(i.object_id) = " . q($table)
|
||||||
$column = idf_escape($field[0]);
|
$column = idf_escape($field[0]);
|
||||||
$val = $field[1];
|
$val = $field[1];
|
||||||
if (!$val) {
|
if (!$val) {
|
||||||
$alter["DROP"][] = " COLUMN $field[0]";
|
$alter["DROP"][] = " COLUMN $column";
|
||||||
} else {
|
} else {
|
||||||
$val[1] = preg_replace("~( COLLATE )'(\\w+)'~", "\\1\\2", $val[1]);
|
$val[1] = preg_replace("~( COLLATE )'(\\w+)'~", "\\1\\2", $val[1]);
|
||||||
if ($field[0] == "") {
|
if ($field[0] == "") {
|
||||||
$alter["ADD"][] = "\n " . implode("", $val);
|
$alter["ADD"][] = "\n " . implode("", $val) . ($table == "" ? substr($foreign[$val[0]], 16 + strlen($val[0])) : ""); // 16 - strlen(" FOREIGN KEY ()")
|
||||||
} else {
|
} else {
|
||||||
unset($val[6]); //! identity can't be removed
|
unset($val[6]); //! identity can't be removed
|
||||||
if ($column != $val[0]) {
|
if ($column != $val[0]) {
|
||||||
|
|
Loading…
Reference in a new issue