Waddler SQL values
This guide assumes familiarity with:
sql.values lets you conveniently pass values to insert statements:
await sql`insert into "users" ("name") values ${sql.values([["Dan"]])};`;
const values = sql.values([["Dan", "dan@acme.com", 25]]);
await sql`insert into "users" ("name", "email", "age") values ${values};`;insert into "users" ("name") values ($1); -- params: ["Dan"]
insert into "users" ("name", "email", "age") values ($1, $2, $3); -- params: ["Dan", "dan@acme.com", 25]const values = sql.values([
["Dan", "dan@acme.com", 25],
["Oleksii", "oleksii@acme.com", 22]
]);
await sql`insert into "users" ("name", "email", "age") values ${values};`;insert into "users" ("name", "email", "age") values ($1, $2, $3), ($4, $5, $6);
-- params: ["Dan", "dan@acme.com", 25, "Oleksii", "oleksii@acme.com", 22]Waddler provides a convinient sql.default for SQL DEFAULT values:
const values = sql.values([["Dan", sql.default], ["Alex", sql.default]])
await sql`insert into "users" ("name", "created_at") values ${values};`;insert into "users" ("name", "created_at") values ($1, default), ($2, default);
-- params: ["Dan", "Alex"]Complete example with sql.identifier and sql.default:
const table = sql.identifier("users")
const columns = sql.identifier(["id", "name", "age"]);
const values = sql.values([
[sql.default, "Oleksii", 20],
[sql.default, "Alex", 23],
]);
await sql`insert into ${table} (${columns}) values ${values} returning ${columns};`;insert into "users" ("id", "name", "age") values (default, $1, $2), (default, $3, $4) returning "id", "name", "age";
-- params: ["Oleksii", 20, "Alex", 23]