mirror of
https://github.com/BTMuli/TeyvatGuide.git
synced 2026-04-03 06:55:06 +08:00
📝 添加 SQLite 数据库操作规则文档
This commit is contained in:
62
.trae/rules/sqlite-rules.md
Normal file
62
.trae/rules/sqlite-rules.md
Normal file
@@ -0,0 +1,62 @@
|
||||
# SQLite 数据库操作规则
|
||||
|
||||
## 参数占位符
|
||||
|
||||
使用 `$1, $2, $3...` 作为参数占位符,**禁止使用 `?`**:
|
||||
|
||||
```typescript
|
||||
// 正确
|
||||
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`:
|
||||
|
||||
```typescript
|
||||
// 正确
|
||||
const result = await db.execute(sql, params);
|
||||
|
||||
// 错误 - 不处理 Promise
|
||||
db.execute(sql, params);
|
||||
```
|
||||
|
||||
## 插入/更新模式
|
||||
|
||||
使用 `ON CONFLICT` 处理插入或更新:
|
||||
|
||||
```typescript
|
||||
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],
|
||||
);
|
||||
```
|
||||
|
||||
## 查询模式
|
||||
|
||||
```typescript
|
||||
const rows = await db.select<RowType>(
|
||||
"SELECT * FROM Table WHERE id = $1",
|
||||
[id],
|
||||
);
|
||||
```
|
||||
|
||||
## 路径别名
|
||||
|
||||
数据库相关代码使用以下别名:
|
||||
|
||||
| 别名 | 路径 |
|
||||
|------|------|
|
||||
| `@Sql/*` | `./src/plugins/Sqlite/*` |
|
||||
| `@Sqlm/*` | `./src/plugins/Sqlite/modules/*` |
|
||||
Reference in New Issue
Block a user