Skip to content
Tauri

@tauri-apps/plugin-sql

Database

The Database class serves as the primary interface for communicating with the rust side of the sql plugin.

new default(path): default
ParameterType
pathstring

default

Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/sql/guest-js/index.ts#L29

PropertyTypeDefined in
pathstringSource: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/sql/guest-js/index.ts#L28

close(db?): Promise<boolean>

close

Closes the database connection pool.

ParameterTypeDescription
db?stringOptionally state the name of a database if you are managing more than one. Otherwise, all database pools will be in scope.

Promise<boolean>

const success = await db.close()

Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/sql/guest-js/index.ts#L162

execute(query, bindValues?): Promise<QueryResult>

execute

Passes a SQL expression to the database for execution.

ParameterType
querystring
bindValues?unknown[]

Promise<QueryResult>

// for sqlite & postgres
// INSERT example
const result = await db.execute(
"INSERT into todos (id, title, status) VALUES ($1, $2, $3)",
[ todos.id, todos.title, todos.status ]
);
// UPDATE example
const result = await db.execute(
"UPDATE todos SET title = $1, completed = $2 WHERE id = $3",
[ todos.title, todos.status, todos.id ]
);
// for mysql
// INSERT example
const result = await db.execute(
"INSERT into todos (id, title, status) VALUES (?, ?, ?)",
[ todos.id, todos.title, todos.status ]
);
// UPDATE example
const result = await db.execute(
"UPDATE todos SET title = ?, completed = ? WHERE id = ?",
[ todos.title, todos.status, todos.id ]
);

Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/sql/guest-js/index.ts#L108

select<T>(query, bindValues?): Promise<T>

select

Passes in a SELECT query to the database for execution.

Type Parameter
T
ParameterType
querystring
bindValues?unknown[]

Promise<T>

// for sqlite & postgres
const result = await db.select(
"SELECT * from todos WHERE id = $1", [ id ]
);
// for mysql
const result = await db.select(
"SELECT * from todos WHERE id = ?", [ id ]
);

Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/sql/guest-js/index.ts#L141

static get(path): default

get

A static initializer which synchronously returns an instance of the Database class while deferring the actual database connection until the first invocation or selection on the database.

The path is relative to tauri::path::BaseDirectory::App and must start with sqlite:.

ParameterType
pathstring

default

const db = Database.get("sqlite:test.db");

Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/sql/guest-js/index.ts#L72

static load(path): Promise<default>

load

A static initializer which connects to the underlying database and returns a Database instance once a connection to the database is established.

The path is relative to tauri::path::BaseDirectory::App and must start with sqlite:.

ParameterType
pathstring

Promise<default>

const db = await Database.load("sqlite:test.db");

Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/sql/guest-js/index.ts#L48

PropertyTypeDescriptionDefined in
lastInsertId?numberThe last inserted id. This value is not set for Postgres databases. If the last inserted id is required on Postgres, the select function must be used, with a RETURNING clause (INSERT INTO todos (title) VALUES ($1) RETURNING id).Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/sql/guest-js/index.ts#L18
rowsAffectednumberThe number of rows affected by the query.Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/sql/guest-js/index.ts#L9

© 2025 Tauri Contributors. CC-BY / MIT