Skip to main content
POST
/
v1
/
table
/
{id}
/
merge_insert
Merge insert (upsert) records into a table
curl --request POST \
  --url {scheme}://{host}:{port}/{basePath}/v1/table/{id}/merge_insert \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/vnd.apache.arrow.stream' \
  --data '"<string>"'
{
  "transaction_id": "<string>",
  "num_updated_rows": 1,
  "num_inserted_rows": 1,
  "num_deleted_rows": 1,
  "version": 1
}

Documentation Index

Fetch the complete documentation index at: https://docs.lancedb.com/llms.txt

Use this file to discover all available pages before exploring further.

Authorizations

Authorization
string
header
required

The access token received from the authorization server in the OAuth 2.0 flow.

Path Parameters

id
string
required

string identifier of an object in a namespace, following the Lance Namespace spec. When the value is equal to the delimiter, it represents the root namespace. For example, v1/namespace/$/list performs a ListNamespace on the root namespace.

Query Parameters

delimiter
string

An optional delimiter of the string identifier, following the Lance Namespace spec. When not specified, the $ delimiter must be used.

on
string
required

Column name to use for matching rows (required)

when_matched_update_all
boolean
default:false

Update all columns when rows match

when_matched_update_all_filt
string

The row is updated (similar to UpdateAll) only for rows where the SQL expression evaluates to true

when_not_matched_insert_all
boolean
default:false

Insert all columns when rows don't match

when_not_matched_by_source_delete
boolean
default:false

Delete all rows from target table that don't match a row in the source table

when_not_matched_by_source_delete_filt
string

Delete rows from the target table if there is no match AND the SQL expression evaluates to true

timeout
string

Timeout for the operation (e.g., "30s", "5m")

use_index
boolean
default:false

Whether to use index for matching rows

Body

application/vnd.apache.arrow.stream

Arrow IPC stream containing the records to merge

The body is of type file.

Response

Result of merge insert operation

Response from merge insert operation

transaction_id
string

Optional transaction identifier

num_updated_rows
integer<int64>

Number of rows updated

Required range: x >= 0
num_inserted_rows
integer<int64>

Number of rows inserted

Required range: x >= 0
num_deleted_rows
integer<int64>

Number of rows deleted (typically 0 for merge insert)

Required range: x >= 0
version
integer<int64>

The commit version associated with the operation

Required range: x >= 0