Skip to content

指南

创建 database

上手POST /v1/accounts/{accountId}/d1/databases{ "name": "..." }。不提供 Cloudflare REST。

prepare / bind / batch

ts
const stmt = env.DB.prepare("SELECT * FROM Customers WHERE CompanyName = ?");
const one = await stmt.bind("Bs Beverages").all();
const batch = await env.DB.batch([
  stmt.bind("Bs Beverages"),
  stmt.bind("Around the Horn"),
]);

bind 支持 SQLite 的 ? / ?NNNbatch 顺序执行并提交。

session 与 bookmark

ts
const session = env.DB.withSession("first-primary");
const result = await session.prepare("SELECT 1 AS ok").all();
const bookmark = result.meta.duration !== undefined
  ? session.getBookmark()
  : null;
if (bookmark) {
  const later = env.DB.withSession(bookmark);
  await later.prepare("SELECT 1 AS ok").all();
}

bookmark 是不透明字符串,只保证本库本地顺序可见性。

dump()

ts
try {
  await env.DB.dump();
} catch (error) {
  // hosted 非 alpha:拒绝
}

dump() 不是备份 API。平台备份走 ocd backup,与 D1 binding 无关。

meta

rows_read / rows_written 是本地 SQLite 执行计数。served_by_region / served_by_colo / served_by_primary 不是地理或 replica 身份。