Loading...
Loading...
Use when a val needs to store structured or relational data. Covers the std/sqlite API, parameterized queries, transactions, and the val-scoped vs organization-scoped database distinction.
npx skill4agent add val-town/plugins sqlite-storagestd/sqlitestd/blobimport { sqlite } from "https://esm.town/v/std/sqlite/main.ts";
await sqlite.execute(`CREATE TABLE IF NOT EXISTS users (
id INTEGER PRIMARY KEY,
name TEXT NOT NULL,
email TEXT UNIQUE
)`);
await sqlite.execute({
sql: "INSERT INTO users (name, email) VALUES (?, ?)",
args: ["Alice", "alice@example.com"],
});
const result = await sqlite.execute("SELECT * FROM users");
// result.rows = [{ id: 1, name: "Alice", email: "alice@example.com" }]sqlite.batchawait sqlite.batch([
{ sql: "INSERT INTO users (name, email) VALUES (?, ?)", args: ["Bob", "bob@example.com"] },
{ sql: "UPDATE users SET name = ? WHERE id = ?", args: ["Robert", 2] },
]);@libsql/clientexecutebatchRecord<string, unknown>[]std/sqlite/main.tsstd/sqlite/global.tssqlite_executesqlite_batchorg{ sql: "SELECT * FROM users", org: "some-org" }argsCREATE TABLE IF NOT EXISTSALTER TABLE ... ADD COLUMNtry/catch