public function dropForeignKey( $table, $keyName )
    {
        try
        {
            $tmpTable = $table . '_temp';

            $this->getTableForeignKeys( $table );

            $this->startTransaction();

            $this->copyTable( $table, $tmpTable );

            $this->dropTable( $table );

            $columns = $this->getTableColumns( $tmpTable );

            $this->createTable( $table, $columns );

            $this->copyTableData( $tmpTable, $table, $columns );

            $this->commitTransaction();
        }
        catch ( Exception $e )
        {
            $this->rollbackTransaction();

            return FALSE;
        }

        return TRUE;
    }