INSERT & UPSERT

INSERT

-- Single row
INSERT INTO users (id, name, email) VALUES ('u1', 'Alice', '[email protected]');

-- Multiple rows
INSERT INTO users (id, name) VALUES ('u1', 'Alice'), ('u2', 'Bob');

-- Object literal syntax (schemaless collections)
INSERT INTO users { name: 'Alice', email: '[email protected]', age: 30 };

-- INSERT ... SELECT
INSERT INTO archive SELECT * FROM orders WHERE created_at < '2025-01-01';

UPSERT

Insert or merge if the document ID already exists:

UPSERT INTO users (id, name, role) VALUES ('u1', 'Alice', 'admin');

-- Object literal syntax
UPSERT INTO users { id: 'u1', name: 'Alice', role: 'admin' };

Bulk Import

-- Auto-detected format (NDJSON, JSON array, or CSV)
COPY users FROM '/path/to/users.ndjson';
COPY users FROM '/path/to/users.csv' WITH (FORMAT csv);
View page sourceLast updated on Apr 16, 2026 by Farhan Syah