Exemple #1
0
 /**
  * Gets the MySQL Foreign Key Definition for an ForeignKey object.
  *
  * @param ForeignKey $foreignKey
  * @return string
  */
 protected function getForeignKeySqlDefinition(ForeignKey $foreignKey)
 {
     $def = '';
     if ($foreignKey->getConstraint()) {
         $def .= ' CONSTRAINT ' . $this->quoteColumnName($foreignKey->getConstraint());
     }
     $columnNames = array();
     foreach ($foreignKey->getColumns() as $column) {
         $columnNames[] = $this->quoteColumnName($column);
     }
     $def .= ' FOREIGN KEY (' . implode(',', $columnNames) . ')';
     $refColumnNames = array();
     foreach ($foreignKey->getReferencedColumns() as $column) {
         $refColumnNames[] = $this->quoteColumnName($column);
     }
     $def .= ' REFERENCES ' . $this->quoteTableName($foreignKey->getReferencedTable()->getName()) . ' (' . implode(',', $refColumnNames) . ')';
     if ($foreignKey->getOnDelete()) {
         $def .= ' ON DELETE ' . $foreignKey->getOnDelete();
     }
     if ($foreignKey->getOnUpdate()) {
         $def .= ' ON UPDATE ' . $foreignKey->getOnUpdate();
     }
     return $def;
 }
Exemple #2
0
 /**
  * Gets the SqlServer Foreign Key Definition for an ForeignKey object.
  *
  * @param ForeignKey $foreignKey
  * @return string
  */
 protected function getForeignKeySqlDefinition(ForeignKey $foreignKey, $tableName)
 {
     $def = ' CONSTRAINT "';
     $def .= $tableName . '_' . implode('_', $foreignKey->getColumns());
     $def .= '" FOREIGN KEY ("' . implode('", "', $foreignKey->getColumns()) . '")';
     $def .= " REFERENCES {$foreignKey->getReferencedTable()->getName()} (\"" . implode('", "', $foreignKey->getReferencedColumns()) . '")';
     if ($foreignKey->getOnDelete()) {
         $def .= " ON DELETE {$foreignKey->getOnDelete()}";
     }
     if ($foreignKey->getOnUpdate()) {
         $def .= " ON UPDATE {$foreignKey->getOnUpdate()}";
     }
     return $def;
 }
 /**
  * Gets the foreign key columns.
  *
  * @return array
  */
 public function getColumns()
 {
     return $this->foreign->getColumns();
 }