You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用DuckDB Node.js库执行SQL报错:Parser Error: syntax error at or near 'into'

解决Node.js中DuckDB执行多条SQL报错的问题

问题原因

Node.js版DuckDB客户端默认禁用了单次执行多条SQL语句的功能,而DuckDB终端默认支持该特性,这就是你在终端能正常执行、但在Node.js中报错的核心原因。

解决方案

方案1:拆分语句分别执行

将建表和插入语句分开调用run方法执行,这是最安全的方式:

const duckdb = require('duckdb');
const db = new duckdb.Database(':memory:');

// 执行建表语句
db.run("create table runs_4fd1 (config JSON, sample JSON)", (err) => {
  if (err) throw err;
  // 建表完成后执行插入语句
  db.run("insert into runs_4fd1 values ('null', null)", (err) => {
    if (err) throw err;
    console.log("数据插入完成");
  });
});

方案2:开启多语句执行模式

如果需要一次性执行多条语句,可以在初始化数据库时配置multiple_statements: true,但注意这种方式会增加SQL注入风险,仅在可控场景下使用:

const duckdb = require('duckdb');
// 开启多语句支持
const db = new duckdb.Database(':memory:', { multiple_statements: true });

// 用分号分隔多条语句,一次性执行
db.run(`create table runs_4fd1 (config JSON, sample JSON);
insert into runs_4fd1 values ('null', null);`, (err) => {
  if (err) throw err;
  console.log("建表及插入操作完成");
});

内容的提问来源于stack exchange,提问作者LOTR

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 23:47:03