diff --git a/docs/runtime/sqlite.mdx b/docs/runtime/sqlite.mdx index e09e2046aa..48c73106eb 100644 --- a/docs/runtime/sqlite.mdx +++ b/docs/runtime/sqlite.mdx @@ -303,7 +303,7 @@ Internally, this calls [`sqlite3_reset`](https://www.sqlite.org/capi3ref.html#sq ### `.run()` -Use `.run()` to run a query and get back `undefined`. This is useful for schema-modifying queries (e.g. `CREATE TABLE`) or bulk write operations. +Use `.run()` to run a query and get back an object with execution metadata. This is useful for schema-modifying queries (e.g. `CREATE TABLE`) or bulk write operations. ```ts db.ts icon="/icons/typescript.svg" highlight={2} const query = db.query(`create table foo;`); diff --git a/packages/bun-types/sqlite.d.ts b/packages/bun-types/sqlite.d.ts index 47ef366629..4c92b1b5b1 100644 --- a/packages/bun-types/sqlite.d.ts +++ b/packages/bun-types/sqlite.d.ts @@ -154,12 +154,6 @@ declare module "bun:sqlite" { * | `bigint` | `INTEGER` | * | `null` | `NULL` | * - * @example - * ```ts - * db.run("CREATE TABLE foo (bar TEXT)"); - * db.run("INSERT INTO foo VALUES (?)", ["baz"]); - * ``` - * * Useful for queries like: * - `CREATE TABLE` * - `INSERT INTO` @@ -180,8 +174,14 @@ declare module "bun:sqlite" { * * @param sql The SQL query to run * @param bindings Optional bindings for the query + * @returns A `Changes` object with `changes` and `lastInsertRowid` properties * - * @returns `Database` instance + * @example + * ```ts + * db.run("CREATE TABLE foo (bar TEXT)"); + * db.run("INSERT INTO foo VALUES (?)", ["baz"]); + * // => { changes: 1, lastInsertRowid: 1 } + * ``` */ run(sql: string, ...bindings: ParamsType[]): Changes; @@ -670,18 +670,19 @@ declare module "bun:sqlite" { * Execute the prepared statement. * * @param params optional values to bind to the statement. If omitted, the statement is run with the last bound values or no parameters if there are none. + * @returns A `Changes` object with `changes` and `lastInsertRowid` properties * * @example * ```ts - * const stmt = db.prepare("UPDATE foo SET bar = ?"); - * stmt.run("baz"); - * // => undefined + * const insert = db.prepare("INSERT INTO users (name) VALUES (?)"); + * insert.run("Alice"); + * // => { changes: 1, lastInsertRowid: 1 } + * insert.run("Bob"); + * // => { changes: 1, lastInsertRowid: 2 } * - * stmt.run(); - * // => undefined - * - * stmt.run("foo"); - * // => undefined + * const update = db.prepare("UPDATE users SET name = ? WHERE id = ?"); + * update.run("Charlie", 1); + * // => { changes: 1, lastInsertRowid: 2 } * ``` * * The following types can be used when binding parameters: