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 (?); -- params: ["Dan"]
insert into "users" ("name", "email", "age") values (?, ?, ?); -- 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 (?, ?, ?), (?, ?, ?);
-- params: ["Dan", "dan@acme.com", 25, "Oleksii", "oleksii@acme.com", 22]

Complete example with sql.identifier:

const table = sql.identifier("users")
const columns = sql.identifier(["id", "name", "age"]);
const values = sql.values([
  [1, "Oleksii", 20],
  [2, "Alex", 23],
]);

await sql`insert into ${table} (${columns}) values ${values} returning ${columns};`;
insert into "users" ("id", "name", "age") values (?, ?, ?), (?, ?, ?) returning "id", "name", "age";
-- params: [1, "Oleksii", 20, 2, "Alex", 23]