INSERT OR REPLACE 在 vec 表主键上导致 UNIQUE 约束失败
作者: davejitsu创建于 2026年2月7日更新于 2026年8月4日
c# 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; }
内容来源: asg017/sqlite-vec