(strings: TemplateStringsArray,...params: any[],): NeonQueryPromise<ArrayMode, FullResults, FullResults extends true ? FullQueryResults<ArrayMode> : QueryRows<ArrayMode>>
transaction: <FullResultsOverride extends boolean = FullResults,>(queriesOrFn: NeonQueryPromise<ArrayMode, FullResults>[] | ((sql: NeonQueryFunctionInTransaction<ArrayModeOverride, FullResultsOverride>) => NeonQueryInTransaction[]),opts?: HTTPTransactionOptions<ArrayModeOverride, FullResultsOverride>,) => Promise<FullResultsOverride extends true ? FullQueryResults<ArrayModeOverride>[] : QueryRows<ArrayModeOverride>[]>
The transaction()
function allows multiple queries to be submitted (over
HTTP) as a single, non-interactive Postgres transaction.
For example:
import { neon } from "@neondatabase/serverless"; const sql = neon("postgres://user:pass@host/db"); const results = await sql.transaction([ sql`SELECT ${1} AS num`, sql`SELECT ${'a'} AS str`, ]); // -> [[{ num: 1 }], [{ str: "a" }]] // or equivalently: const results = await sql.transaction(txn => [ txn`SELECT ${1} AS num`, txn`SELECT ${'a'} AS str`, ]); // -> [[{ num: 1 }], [{ str: "a" }]]
query<FullResultsOverride extends boolean = FullResults,>(queryWithPlaceholders: string,params?: any[],queryOpts?: HTTPQueryOptions<ArrayModeOverride, FullResultsOverride>,): NeonQueryPromise<ArrayModeOverride, FullResultsOverride, FullResultsOverride extends true ? FullQueryResults<ArrayModeOverride> : QueryRows<ArrayModeOverride>>
The query()
function takes a query string with embedded $1
, $2
(etc.) placeholders, followed by an array of query parameters, followed
(optionally) by query options. For example:
const sql = neon("postgres://user:pass@host/db"); const rows = await sql.query( "SELECT * FROM table WHERE id = $1", [123], { fetchOptions: { priority: "high" } } ); // -> [ { greeting: "hello world" } ]
unsafe(rawSQL: string): UnsafeRawSql
The unsafe()
function allows arbitrary strings to be interpolated in a
SQL query. This must be used only with trusted string values under your
control.
const sql = neon("postgres://user:pass@host/db"); const colName = 'greeting'; const rows = await sql`SELECT 'hello world' AS ${sql.unsafe(colName)}`;