Inherited from v1.0.0

sqlite module

Embedded SQLite client. Open a file (or ":memory:" for tests), run parameterized SQL, wrap operations in transactions, and run idempotent migrations.

import "sqlite" as sqlite;

var db = sqlite.open("app.db");

db.exec("CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, name TEXT)");
db.exec("INSERT INTO users (name) VALUES (?)", ["Alice"]);

var rows = db.query("SELECT * FROM users");
for (var row of rows) { print(row.id, row.name); }

db.close();

Module API

FunctionDescription
sqlite.open(path) → dbOpen or create. ":memory:" for a private in-memory DB.
sqlite.version() → stringSQLite library version.
sqlite.transaction(db, fn)Run fn(db) inside BEGIN/COMMIT; rolls back on throw.
sqlite.migrate(db, statements)Run a list of idempotent DDL statements.
sqlite.insert(db, table, row) → idConvenience: INSERT + return last_insert_id().

db handle

MethodDescription
db.exec(sql, params?)Run a statement; returns nothing. params is a list.
db.query(sql, params?) → list of mapsEach row as {col_name: value}.
db.query_one(sql, params?) → map | nullFirst row or null.
db.last_insert_id() → number
db.changes() → numberRows touched by the last DML.
db.close()Idempotent.

See also