feat: SQL 语法支持 CREATE TABLE IF NOT EXISTS
CI / test (20.x) (push) Canceled after 0s
CI / test (22.x) (push) Canceled after 0s
CI / test (24.x) (push) Canceled after 0s
CI / test (18.x) (push) Canceled after 10s

- Parser 支持 CREATE TABLE IF NOT EXISTS 语法
- AST CreateTableStatement 新增 ifNotExists 字段
- Executor 表已存在时静默跳过
- 修复 demo.html Aria 预设报错
This commit is contained in:
2026-07-27 17:18:52 +08:00
parent f84673e519
commit 648526c188
11 changed files with 69 additions and 8 deletions
+5
View File
@@ -228,6 +228,11 @@ export class QueryExecutor {
}
private async executeCreateTable(stmt: CreateTableStatement): Promise<void> {
// IF NOT EXISTS: 表已存在时静默返回
if (stmt.ifNotExists) {
const exists = await this.engine.hasTable(stmt.name);
if (exists) return;
}
const columns: Record<string, any> = {};
for (const col of stmt.columns) columns[col.name] = astColumnToColumnDef(col);
return this.engine.createTable(createSchema(stmt.name, columns));