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);