Doctrine\DBAL\Platforms\DB2Platform::getPreAlterTableIndexForeignKeySQL PHP Метод

getPreAlterTableIndexForeignKeySQL() защищенный Метод

{@inheritDoc}
protected getPreAlterTableIndexForeignKeySQL ( Doctrine\DBAL\Schema\TableDiff $diff )
$diff Doctrine\DBAL\Schema\TableDiff
    protected function getPreAlterTableIndexForeignKeySQL(TableDiff $diff)
    {
        $sql = array();
        $table = $diff->getName($this)->getQuotedName($this);
        foreach ($diff->removedIndexes as $remKey => $remIndex) {
            foreach ($diff->addedIndexes as $addKey => $addIndex) {
                if ($remIndex->getColumns() == $addIndex->getColumns()) {
                    if ($remIndex->isPrimary()) {
                        $sql[] = 'ALTER TABLE ' . $table . ' DROP PRIMARY KEY';
                    } elseif ($remIndex->isUnique()) {
                        $sql[] = 'ALTER TABLE ' . $table . ' DROP UNIQUE ' . $remIndex->getQuotedName($this);
                    } else {
                        $sql[] = $this->getDropIndexSQL($remIndex, $table);
                    }
                    $sql[] = $this->getCreateIndexSQL($addIndex, $table);
                    unset($diff->removedIndexes[$remKey]);
                    unset($diff->addedIndexes[$addKey]);
                    break;
                }
            }
        }
        $sql = array_merge($sql, parent::getPreAlterTableIndexForeignKeySQL($diff));
        return $sql;
    }