Skip to content

INSERT OR REPLACE causes UNIQUE constraint failure on vec table primary key #259

@davejitsu

Description

@davejitsu

Microsoft.Data.Sqlite.SqliteException: 'SQLite Error 1: 'UNIQUE constraint failed on vec_comments primary key'.'

private int UpsertEmbeddings(string tableName, IEnumerable<VectorEmbedding> vectorEmbeddings)
{
    var affectedRows = 0;
    using var transaction = connection.BeginTransaction();
    using var command = connection.CreateCommand();
    command.CommandText = $"INSERT OR REPLACE INTO {tableName} (rowid, embedding) Values (@id, @embedding);";
    command.Parameters.Add("@id", SqliteType.Integer);
    command.Parameters.Add("@embedding", SqliteType.Blob);

    foreach (var embedding in vectorEmbeddings)
    {
        command.Parameters["@id"].Value = embedding.Id;
        command.Parameters["@embedding"].Value = MapVectorToBytes(embedding.Embedding);
        affectedRows += command.ExecuteNonQuery();
    }

    transaction.Commit();
    return affectedRows;
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions