Storm\Drivers\Platforms\SQLite\Queries\Persister::UpsertRowsQuery PHP Метод

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

protected UpsertRowsQuery ( QueryBuilder $QueryBuilder, Table $Table, array $Rows, $ShouldReturnKeyData )
$QueryBuilder Storm\Drivers\Base\Relational\Queries\QueryBuilder
$Table Storm\Drivers\Base\Relational\Table
$Rows array
    protected function UpsertRowsQuery(QueryBuilder $QueryBuilder, Table $Table, array $Rows, $ShouldReturnKeyData)
    {
        if ($ShouldReturnKeyData) {
            throw new \Storm\Drivers\Base\Relational\PlatformException('SQLite does not support returning data');
        }
        $Columns = $Table->GetColumns();
        $PrimaryKeyColumns = $Table->GetPrimaryKeyColumns();
        $ColumnNames = array_keys($Columns);
        $PrimaryKeyColumnNames = array_keys($PrimaryKeyColumns);
        $TableName = $Table->GetName();
        $DerivedTableName = $TableName . 'Values';
        $PrimaryKeyIdentifiers = [];
        foreach ($PrimaryKeyColumnNames as $ColumnName) {
            $PrimaryKeyIdentifiers[] = [$TableName, $ColumnName];
        }
        $QueryBuilder->AppendIdentifier('INSERT OR REPLACE INTO #', [$TableName]);
        $QueryBuilder->AppendIdentifiers('(#)', $ColumnNames, ',');
        //TODO: Fix unique constraint conflicts
        $this->AppendDataAsInlineTable($QueryBuilder, $Table->GetColumns(), $DerivedTableName, $Rows);
    }