private function _getSQLToCreateForeignKey($table, $field, $foreignDb, $foreignTable, $foreignField, $name = null, $onDelete = null, $onUpdate = null)
{
$sql_query = 'ALTER TABLE ' . Util::backquote($table) . ' ADD ';
// if user entered a constraint name
if (!empty($name)) {
$sql_query .= ' CONSTRAINT ' . Util::backquote($name);
}
foreach ($field as $key => $one_field) {
$field[$key] = Util::backquote($one_field);
}
foreach ($foreignField as $key => $one_field) {
$foreignField[$key] = Util::backquote($one_field);
}
$sql_query .= ' FOREIGN KEY (' . implode(', ', $field) . ') REFERENCES ' . ($this->_db_name != $foreignDb ? Util::backquote($foreignDb) . '.' : '') . Util::backquote($foreignTable) . '(' . implode(', ', $foreignField) . ')';
if (!empty($onDelete)) {
$sql_query .= ' ON DELETE ' . $onDelete;
}
if (!empty($onUpdate)) {
$sql_query .= ' ON UPDATE ' . $onUpdate;
}
$sql_query .= ';';
return $sql_query;
}