> ## 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.

# Insert

> INSERT INTO, including INSERT ... SELECT to move rows server-side.

**Applies to:** Embedded ❌, Enterprise ✅

```sql SQL icon="database" theme={"theme":{"light":"vitesse-light","dark":"catppuccin-mocha"}}
INSERT INTO documents (id, title) VALUES (1, 'Merlin'), (2, 'Arthur')

INSERT INTO archive
SELECT * FROM documents
WHERE created_at < '2026-01-01'
```

`INSERT ... SELECT` is the form worth knowing: it moves rows between tables
server-side, without a round trip through your process.

Commits a new table version, so [versioning](https://docs.lancedb.com/management/table.md#versioning) and
the [write guarantees](https://docs.lancedb.com/basics/guarantees.md#writes) apply, including that the
version advances even when the statement affects zero rows.

## What to read next

> [card] [Insert](https://docs.lancedb.com/ingestion/insert.md)
>
> The SDK equivalent.

> [card] [Merge Insert](https://docs.lancedb.com/ingestion/merge-insert)
>
> Upsert (matching incoming rows against existing keys) has no SQL form.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.