public function generateForeignKeyExpression(Database\Definition\ForeignKey $foreignKey) { return new SimpleExpression(' CONSTRAINT ? FOREIGN KEY (?) REFERENCES ? (?)??', new Symbol($foreignKey->getName()), Symbol::prepareColumns($foreignKey->getLocalColumns()), new Symbol($foreignKey->getReferencedTable()->schemaName), Symbol::prepareColumns($foreignKey->getReferenceColumns()), new Raw($foreignKey->onUpdate === ForeignKey::NO_ACTION ? '' : ' ON UPDATE ' . $foreignKey->onUpdate), new Raw($foreignKey->onDelete === ForeignKey::NO_ACTION ? '' : ' ON DELETE ' . $foreignKey->onDelete)); }
public function addForeignKey(ForeignKey $foreignKey) { //$foreignKey->getReferencedTable()->dependentTables [$this->schemaName]= $this; $this->foreignKeys[$foreignKey->getName()] = $foreignKey; foreach ($foreignKey->getLocalColumns() as $column) { $this->columnForeignKeys[$column->propertyName] = $foreignKey; } return $this; }