mirror of
https://github.com/BTMuli/TeyvatGuide.git
synced 2026-03-26 05:39:45 +08:00
1.1 KiB
1.1 KiB
SQLite 数据库操作规则
参数占位符
使用 $1, $2, $3... 作为参数占位符,禁止使用 ?:
// 正确
await db.execute(
"INSERT INTO Table(key, value) VALUES ($1, $2)",
[key, value]
);
// 错误
await db.execute(
"INSERT INTO Table(key, value) VALUES (?, ?)",
[key, value]
);
异步模式
所有数据库操作返回 Promise,必须使用 await:
// 正确
const result = await db.execute(sql, params);
// 错误 - 不处理 Promise
db.execute(sql, params);
插入/更新模式
使用 ON CONFLICT 处理插入或更新:
await db.execute(
`INSERT INTO Table(key, value, updated)
VALUES ($1, $2, datetime('now', 'localtime'))
ON CONFLICT(key) DO UPDATE SET value = $2, updated = datetime('now', 'localtime');`,
[key, value],
);
查询模式
const rows = await db.select<RowType>(
"SELECT * FROM Table WHERE id = $1",
[id],
);
路径别名
数据库相关代码使用以下别名:
| 别名 | 路径 |
|---|---|
@Sql/* |
./src/plugins/Sqlite/* |
@Sqlm/* |
./src/plugins/Sqlite/modules/* |