连接到 DuckDB
将 Deno 与 DuckDB 结合使用,你可以连接到内存数据库或指定文件名的持久化数据库。
import { DuckDBInstance } from "npm:@duckdb/node-api";
为了优雅地清理资源
using stack = new DisposableStack();
创建内存数据库
const instance = await DuckDBInstance.create(":memory:");
当 `stack` 超出作用域时关闭该实例
stack.defer(() => instance.closeSync());
连接到数据库
const connection = await instance.connect();
当 `stack` 超出作用域时关闭连接
stack.defer(() => connection.closeSync());
简单的 Select 查询
const reader = await connection.runAndReadAll("select 10, 'foo'");
const rows = reader.getRows();
console.debug(rows); // [ [ 10, "foo" ] ]
预处理语句
const prepared = await connection.prepare("select $1, $2");
prepared.bindInteger(1, 20);
prepared.bindVarchar(2, "bar");
const reader2 = await prepared.runAndReadAll();
const rows2 = reader2.getRows();
console.debug(rows2); // [ [ 20, "bar" ] ]
使用 Deno CLI 在本地运行此示例
deno run -R -W -E -N --allow-ffi https://docs.deno.org.cn/examples/scripts/duckdb.ts